| 查看: 403 | 回复: 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 谁能告诉我是为什么啊? |
» 猜你喜欢
实验室接单子
已经有6人回复
假如你的研究生提出不合理要求
已经有11人回复
全日制(定向)博士
已经有5人回复
萌生出自己或许不适合搞科研的想法,现在跑or等等看?
已经有4人回复
Materials Today Chemistry审稿周期
已经有4人回复
参与限项
已经有3人回复
对氯苯硼酸纯化
已经有3人回复
求助:我三月中下旬出站,青基依托单位怎么办?
已经有12人回复
所感
已经有4人回复
要不要辞职读博?
已经有7人回复
找到一些相关的精华帖子,希望有用哦~
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人回复
科研从小木虫开始,人人为我,我为人人












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