2016-09-16 147 views
1

我想用犰狳lib从Matlab计算逆矩阵。为此,我使用Mex。不幸的是,当我调用函数时,Matlab崩溃。看着我的代码,有人可以帮助我在哪里错了?Matlab +犰狳和逆矩阵崩溃

#include "armaMex.hpp" 

void mexFunction(int nlhs, mxArray *plhs[], 
      int nrhs, const mxArray *prhs[]) 
{ 
    mat A = armaGetPr(prhs[0]); 
    plhs[0] = armaCreateMxMatrix(A.n_rows,A.n_cols); 
    armaSetPr(plhs[0],inv(A)); 
} 

能顺利完成编译。

+1

您可以编辑显示在Matlab的崩溃看到错误消息?无法分辨问题是数字还是代码。 – paisanco

回答

1

试试这个:

#include "armaMex.hpp" 

void mexFunction(int nlhs, mxArray *plhs[], 
     int nrhs, const mxArray *prhs[]) 
{ 
    mat A = conv_to<mat>::from(armaGetPr(prhs[0],true)); 

    plhs[0] = armaCreateMxMatrix(A.n_rows,A.n_cols, mxDOUBLE_CLASS, mxREAL); 
    armaSetPr(plhs[0],conv_to<mat>::from(inv(A))); 

} 
+0

嘿thx!它解决了我的问题。非常感谢你。 –