| 外部インタフェース/API リファレンス | ![]() |
C 言語表示
#include "mex.h" void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]);
引数
nlhs
MATLABは、期待されるmxArrayの数をnlhsに設定します。
plhs
plhsにNULLポインタ配列のポインタを設定します。
nrhs
mxArrayの数を設定します。
prhs
prhsに入力mxArrayの配列のポインタを設定します。これらのmxArrayは、constantと宣言され、リードオンリーでMEX-ファイルでは修正できません。mxArrayのデータを変更すると、予期せぬ不具合が起こる場合があります。
詳細
mexFunctionは、ユーザが呼び出すルーチンではありません。mexFunctionは、すべてのCのソースMEX-ファイルに存在するべき関数のエントリポイントの一般名称です。MEX-ファンクションを呼び出すとき、MATLABは対応する同名のMEX-ファイルを探してロードします。その後、MATLABはMEX-ファイル内のmexFunctionというシンボルを探します。見つかった場合、シンボルmexFunctionのアドレスを使ってMEX-ファンクションを呼び出します。MEX-ファイル内でmexFunctionというルーチンが見つからない場合は、エラーメッセージを表示します。
MEX-ファイルを呼び出すとき、MATLABは呼び出し側の情報を使ってnlhs, plhs, nrhs, prhsを自動的に決定します。MATLAB言語のシンタックスでは、関数はつぎのような一般的な形式をもちます。
[a,b,c,...] = fun(d,e,f,...)
ここで、...は、同じ書式の項目が続くことを示します。a,b,c...は左辺引数で、d,e,f...は右辺引数です。引数nlhsとnrhsには、MEX-ファンクションを呼び出す左辺引数と右辺引数の数が含まれます。prhsは、右辺mxArrayのポインタからなる長さnrhsの配列のポインタです。plhsは、長さnlhs の配列のポインタで、ユーザのCの関数で出力された左辺のmxArrayに対するポインタを設定する必要があります。
例題
examplesディレクトリのmexサブディレクトリのmexfunction.cを参照してください。
| mexEvalString | mexFunctionName | ![]() |