24小时热门版块排行榜    

查看: 84  |  回复: 0
当前主题已经存档。

徐启远

木虫 (小有名气)

[交流] 【求助】关于mexCallMATLAB的问题

#include "mex.h"
void hilb( int k)
{ int i,j;
    int m,n;
    double *y;
    for(m=0;m      for(n=0;n      for(i=0;i       for(j=0;j      y[n*k+j+(m*k+i)*k*k]= ((double)i+(double)j)+((double)m+(double)n);}
     void mexFunction(int nlhs,mxArray *plhs[],int nrhs,const mxArray *prhs[])
{
      
        mxArray *y,*z;
        int k,M;
        k=mxGetScalar(prhs[0]);
        M=k*k;
         plhs[0]=mxCreateDoubleMatrix(M,M,mxREAL);
         y=plhs[0];
         plhs[1]=mxCreateDoubleMatrix(M,M,mxREAL);
         z=plhs[1];         
         mexCallMATLAB(1,&plhs[1],1,&plhs[0];,"eig";
              
      }
在MATLAB环境下运行
结果是>> y=Matlab_2(2)

y =

     0     0     0     0
     0     0     0     0
     0     0     0     0
     0     0     0     0
为什么啊
我个人感觉是plhs[1]=mxCreateDoubleMatrix(M,M,mxREAL);
         z=plhs[1];         
         mexCallMATLAB(1,&plhs[1],1,&plhs[0];,"eig";
出问题啦,但不知道在哪
希望指点一下
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 徐启远 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见