ユーザーへの C MEX ファイルの入力要求
MATLAB® は stdin および stdout を使用しないため、ユーザーへの入力要求に scanf や printf のような C/C++ 関数は使用しません。次の例では、関数 mexCallMATLAB を関数 input と共に使用してユーザーから数値を取得する方法を説明します。
#include "mex.h"
#include "string.h"
void mexFunction( int nlhs, mxArray *plhs[],
int nrhs, const mxArray *prhs[] )
{
mxArray *new_number, *str;
double out;
str = mxCreateString("Enter extension: ");
mexCallMATLAB(1,&new_number,1,&str,"input");
out = mxGetScalar(new_number);
mexPrintf("You entered: %.0f ", out);
mxDestroyArray(new_number);
mxDestroyArray(str);
return;
}
参考
mexCallMATLAB | input | inputdlg