| 外部インタフェース/API | ![]() |
本章では、C言語でMEX-ファイルを作成する方法を説明します。MEX-ファイル本体、これらのC言語ファイルがMATLABとどのように作用するか、異なるデータタイプの引数をどのように渡して操作するか、MEX-ファイルプログラムのデバッグ方法、その他のアドバンスドトピックスについて説明します。
C MEX-ファイル
C MEX-ファイルは、APIルーチンの呼び出しを使ってCソースコードをコンパイルするために、mexスクリプトを使って作られます。
C MEX-ファイルの部分
MEX-ファイルのソースコードは、2つの部分から成り立ちます。
mexFunctionとパラメータprhs, nrhs, plhs, nlhsにより、計算ルーチンとMATLABのインタフェースを行うゲートウェイルーチン。ここで、prhsは右辺入力引数の配列、nrhsは右辺入力引数の数、plhsは左辺出力引数の配列、nlhsは左辺出力引数の数です。ゲートウェイは、計算ルーチンをサブルーチンとして呼び出します。ゲートウェイルーチンでは、mxArray構造体のデータにアクセスでき、このデータをCの計算ルーチン内で操作します。たとえば、mxGetPr(prhs[0]) は、prhs[0] で示されたmxArrayの実数データへのタイプdouble *のポインタを出力します。それから、このポインタをCの他のタイプdouble * のポインタのように使うことができます。ゲートウェイからユーザのC計算ルーチンをコールした後で、出力するデータへのタイプmxArrayのポインタを設定できます。それで、MATLABはユーザの計算ルーチンからの出力をMEX-ファイルからの出力と認識できます。
つぎの図「C MEXサイクル」は、どのように入力がMEX-ファイルに入るか、ゲートウェイ関数がどの関数を実行するか、どのようにMATLABに出力するかを示します。
| テクニカルサポート | MEX-ファイルに必要な引数 | ![]() |