| 查看: 409 | 回复: 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 谁能告诉我是为什么啊? |
» 猜你喜欢
情人节自我反思:在爱情中有过遗憾吗?
已经有10人回复
今年春晚有几个节目很不错,点赞!
已经有7人回复
基金正文30页指的是报告正文还是整个申请书
已经有5人回复
过年走亲戚时感受到了所开私家车的鄙视链
已经有5人回复
找到一些相关的精华帖子,希望有用哦~
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人回复
科研从小木虫开始,人人为我,我为人人













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