回 帖 发 新 帖 刷新版面

主题:请教一个用MATLAB引擎实现与C混合编程的问题

各位:
    最近我调用MATLAB引擎实现一个矩阵的运算,然后传到C中,但是结果与直接
在MATLAB中算的不同,程序的错误到是没有,我想了各种办法都不行,望知道的朋友
帮下忙吧,谢谢!部分程序如下:
Engine *ep;
   mxArray *xx = NULL,*yy = NULL,*zz = NULL,*u =NULL;
    xx = mxCreateDoubleMatrix(16, 16, mxREAL);
    memcpy((void *)mxGetPr(xx), (void *)array1, sizeof(array1));

    yy = mxCreateDoubleMatrix(16, 16, mxREAL);

    zz = mxCreateDoubleMatrix(17, 16, mxREAL);

    u= mxCreateDoubleMatrix(16, 1, mxREAL);
    engPutVariable(ep,"xx",xx); //将mxArray数组xx写入到Matlab工作空间,命名为xx
    engPutVariable(ep,"yy",yy);//将mxArray数组yy由于写入到Matlab工作空间,命名为yy。
    engPutVariable(ep,"zz",zz); 
    engPutVariable(ep,"u",u); 
     engEvalString(ep, "yy=xx-eye(size(xx));");
    engEvalString(ep,"zz=[yy;0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0];");
经检验:就是最后一行的结果错误,本来应该是多加一行全0的,但是结果不是的

回复列表 (共1个回复)

沙发


[em15]
没有知道呀,高手出来指点下小妹嘛!

我来回复

您尚未登录,请登录后再回复。点此登录或注册