嘿,我真的不明白如何访问通过 matlab 中的参数传递给 mex 函数的数据。假设我有“默认”网关功能
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);!?
提前非常感谢!