外部インタフェース/API    

MEX-ファイルに必要な引数

MEX-ファイルの2つの成分は分離しているか、結合しています。いずれの場合でも、エントリポイントとインタフェースルーチンが適切に宣言されるために、ファイルはヘッダ#include "mex.h"を含まなければなりません。ゲートウェイルーチン名は常にmexFunctionで、つぎのパラメータを含まなければなりません。

パラメータnlhsnrhsは、MEX-ファイルが呼び込まれる左辺と右辺の引数の数を含みます。MATLAB言語のシンタックスでは、関数は一般につぎの形式です。

ここで、省略形 (...)は同じ形式の項目の追加を意味します。a,b,c,...は左辺引数で、d,e,f,... は右辺引数です。

パラメータplhsprhsは、MEX-ファイルの左辺と右辺の引数へのポインタを含むベクトルです。両者ともタイプmxArray *と宣言され、ポイントされた変数がMATLAB配列であることを意味します。prhsはMEX-ファイルへの右辺入力へのポインタを含む長さnrhsの配列で、plhsはユーザの関数が作る左辺出力へのポインタを含む長さnlhsの配列です。たとえば、つぎのコマンドで、MATLABワークスペースからMEX-ファイルを呼び込むと

MATLABインタプリタはつぎの引数でmexFunctionを呼び出します。

plhsは、要素がnullポインタである1要素のCの配列です。prhsは、1番目の要素がYというmxArrayのポインタで、2番目の要素がZというmxArrayのポインタである2要素のCの配列です。

サブルーチンが実行するまで出力xは作成されないので、パラメータplhs は、何もポイントしません。出力配列を作成し、plhs[0]の配列のポインタを割り当てるのはゲートウェイルーチンです。plhs[0]が割り当てられない場合は、MATLABは出力が割り当てられていないことを示すワーニングメッセージを表示します。


 C言語MEX-ファイルの作成 C MEX-ファイルの例