| 查看: 397 | 回复: 0 | |||
[求助]
【求助】在MATLAB中通过MEX调用BLAS
|
|
本人正在学习在MATLAB中调用BLAS,好不容易把MATLAB中的一个dgemm的例子编译通了,但是在MATLAB中使用这个函数时,不论输入是什么,输出都是0,很郁闷。请各位大牛多多指点! 以下是我的MEX文件,文件名是“test_MKL.for”, 用FORTRAN写的: subroutine mexFunction(nlhs, plhs, nrhs, prhs) integer*8 plhs(*), prhs(*) integer nlhs, nrhs integer*8 mxcreatedoublematrix, mxgetpr integer mxgetm, mxgetn integer m, n, p integer*8 A, B, C real*8 one, zero, ar, br character ch1, ch2 ch1 = 'N' ch2 = 'N' one = 1.0 zero = 0.0 A = mxgetpr(prhs(1)) B = mxgetpr(prhs(2)) m = mxgetm(prhs(1)) p = mxgetn(prhs(1)) n = mxgetn(prhs(2)) plhs(1) = mxcreatedoublematrix(m, n, 0.0) C = mxgetpr(plhs(1)) call mxcopyptrtoreal8(A, ar, 1) call mxcopyptrtoreal8(B, br, 1) call dgemm (ch1, ch2, m, n, p, one, %val(A), m, + %val(B), p, zero, %val(C), m) return end 我在mexopts.bat中添加了MKL相应的库函数路径之后,对上面的例子进行了编译,最终生成了“test_MKL.mexw64”的MEX文件(我用的是win7 64)。但是当我用下面的例子对上述函数进行测试时,就出问题了。没有报错,但不管输入是什么,输出一直是0。 以下是我在MATLAB中进行测试时的代码: M=2; N=3; K=4; a=1.0; b=0.0; X=ones(N,K)*10.0; Y=ones(K,M)*20.0; Z=zeros(N,M); test_MKL('N','N',N,M,K,a,X,N,Y,K,b,Z,N) 输出结果是: ans = 0 谁能告诉我是为什么啊? |
» 猜你喜欢
Bioresource Technology期刊,第一次返修的时候被退回好几次了
已经有6人回复
2025冷门绝学什么时候出结果
已经有4人回复
真诚求助:手里的省社科项目结项要求主持人一篇中文核心,有什么渠道能发核心吗
已经有8人回复
寻求一种能扛住强氧化性腐蚀性的容器密封件
已经有5人回复
论文投稿,期刊推荐
已经有6人回复
请问哪里可以有青B申请的本子可以借鉴一下。
已经有4人回复
孩子确诊有中度注意力缺陷
已经有14人回复
请问下大家为什么这个铃木偶联几乎不反应呢
已经有5人回复
请问有评职称,把科研教学业绩算分排序的高校吗
已经有5人回复
天津工业大学郑柳春团队欢迎化学化工、高分子化学或有机合成方向的博士生和硕士生加入
已经有4人回复
找到一些相关的精华帖子,希望有用哦~
matlab在概率统计中的计算
已经有76人回复
怎么样设置matlab在excel中的输出位置
已经有10人回复
在matlab中拟合曲面的表达式
已经有29人回复
matlab的函数调用问题
已经有3人回复
matlab在fluent中的应用
已经有13人回复
Matlab在地学中的应用
已经有24人回复
求助svm在matlab中的应用
已经有7人回复
如何在matlab中绘制三维立体图
已经有13人回复
VS2005下matlab调用
已经有8人回复
【求助】matlab 中,几个m文件调用
已经有14人回复
【求助】如何在MATLAB中作出一个随机平面,急急急!!!
已经有3人回复
科研从小木虫开始,人人为我,我为人人













回复此楼
点击这里搜索更多相关资源