ねえ、私はmatlabの引数を介してmex-functionに渡されたデータにアクセスする方法を本当に理解していません。私が「デフォルト」ゲートウェイ機能を持っていると仮定します
void mexFunction( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[] )
そして今、私は1.入力引数へのポインタを取得します。
double* data_in;
data_in = mxGetPr(prhs[0]);
次の両方の行は、それぞれ別々に私のmatlabをクラッシュさせます。
mexPrintf("%d", *data_in);
mexPrintf("%d", data_in[1]);
しかし、data_inが明らかに最初の引数へのポインターであるのに、なぜそのようなデータにアクセスできないのでしょうか。
- いつポインタをdouble*として宣言する必要があり、いつmxArray *として宣言する必要がありますか?時々私はそのようなものを見ます:mxArray * arr = mxCreateDoubleMatrix(n、m、mxREAL);!?
よろしくお願いします!