mex

MEXファイル

MATLABで作成される関数、C/C++やFortranのサブルーチンを呼び出すのに使う。

C/C++ または Fortran MEX ファイルへのエントリ ポイント

#include "mex.h"
void mexFunction(
            int nlhs,
            mxArray *plhs[],
            int nrhs, 
            const mxArray *prhs[]
)
  • nlhs・・・出力引数(戻り値)の数、すなわち配列plhsのサイズ
  • plhs・・・出力引数(戻り値)のポインタ配列
  • nrhs・・・入力引数の数、すなわち配列prhsのサイズ
  • prhs・・・入力引数のポインタ配列、mexファイル内でこの値は定数であるべきなので直接変更はしないこと(constで修飾もしてあるので)

引用元 : https://jp.mathworks.com/help/matlab/apiref/mexfunction.html

C言語のプログラムにはmain()があるようにMATLABでは関数のエントリポイントとしてゲートウェイルーチンmexFunctionを用いる。これがMATLABでから呼び出す際の引数戻り値のやり取りを行う。

MATLAB APIを呼び出すために、mex.hをインクルードすること。
ファイル名.cというソースコードをコンパイルした場合、MEXファイル名はファイル名となる。MATLABのコマンドライン上では特に拡張子をつけず、所定の引数や戻り値の設定をすれば良い。

参考文献

  • mex.txt
  • 最終更新: 2018/02/26
  • by yuki_kusakabe