【发布时间】:2011-04-28 09:24:26
【问题描述】:
你好, 我真的不明白如何访问通过 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);!?
提前非常感谢!
【问题讨论】: