| 查看: 467 | 回复: 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 谁能告诉我是为什么啊? |
» 猜你喜欢
国社科又开始会评了,不知道这次命运如何
已经有13人回复
麻烦专家们看看评委们的意见(F口面上)
已经有13人回复
售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急
已经有4人回复
售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急
已经有6人回复
科研人应该花精力去思考如何解决问题,而不是去凝练问题
已经有14人回复
要骂人了,新模版改版就是要淡化问题凝练这种虚的东西,结果有个评委还在说凝练得不够
已经有17人回复
基金系统什么内容也没有
已经有10人回复
学科评审组评审是指会评吗?
已经有5人回复
面上函评意见出来了,像什么等级?
已经有17人回复
小白求助 投论文要求的highlights应该如何写
已经有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人回复
科研从小木虫开始,人人为我,我为人人










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