2016-09-16 22 views
1

私はArmadilloのlibを使ってMatlabから逆行列を計算しようとしています。これを行うには、私はMexを使用しています。残念ながら、関数を呼び出すとMatlabがクラッシュします。私のコードを見ると、誰かがどこで間違っているのを助けることができますか?Matlab + Armadilloと逆行列がクラッシュする

#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

ねえね!それは私の問題を解決する。どうもありがとうございました。 –

関連する問題