のドキュメントとmexCallMATLAB
、C++ ソース コードとの相互運用で確認できることから、次のようになります。
MyDoubleFunction
単一のスカラー double 値を取り、スカラー double 値を返すMatLab 関数があるとします。4.0
関数に値を渡し、その答えを知りたい場合は、次のようにします。
//setup the input args
mxArray* input_args[1] = {mxCreateDoubleScalar(4.0)};
mxArray** output_args; //will be allocated during call to mexCallMATLAB
//make the call to the Matlab function
if (mexCallMATLAB( 1 /* number of output arguments */,
output_args,
1 /* number of input arguments */,
&input_args,
"MyDoubleFunction"))
{
//error if we get to this code block since it returned a non-zero value
}
//inspect the output arguments
double answer = mxGetScalar(*output_args);