外部インタフェース/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 | ![]() |