2016-09-16 138 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!它解決了我的問題。非常感謝你。 –