matlab呼び出しc++関数

812 ワード

よくある問題は、matlabで書いたc++コードを呼び出す方法です.次に勉強します.
まず、cコードを呼び出すには、MEXを使用する必要があります.彼は主にmatlabの主なインタフェースと、インタフェースの主なインタフェースは以下の関数です.
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
nlhs:         (Left-handside)
plhs:          
nrhs:       

例を挙げます.
[a,b]=test(c,d,e)
  mex  test ,  test          prhs[0]=c ,prhs[1]=d ,prhs[2]=e 
      ,      plhs[0],plhs[1]      a b,         。

上記のmxArrrayはmatlabのデータフォーマットであり、ポインタであり、注意すべき点はすべて、matlabでは、列挙が優先的に記憶され、c++では行優先的に記憶され、例えばa=[1,2;3,4;5,6]、aのデータのメモリでの記憶順序は:1、3、5、2、4、6である.CC++でMatlabからの変数を使用する場合は、データの格納順序に注意してください.
この関数はCのmain()関数に似ており、すべてのインタフェースがこのmexFunctionから実現されます.次に例を挙げます.
1.マトリクスの加算を実行する必要があります(本来はmatlabでより効率的に実行されますが、ここでは説明を教えるためだけです).例えば、c++のファイル名はaddFun.cppです.matlabで