Привет,
Я не очень понимаю, как получить доступ к данным, передаваемым через аргументы в 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);!?
Заранее большое спасибо!