У меня проблема при создании функции MEX- C в MATLAB.
Здесь я хочу вернуть некоторые данные, сгенерированные моей вычислительной программой, и поместить их в plhs [0] .
Мне кажется, что я неправильно понял, используя C указатели и MEX-файлы, так как я на самом деле не C парень ...
Вот мой код:
void mexFunction(int nlhs, mxArray *plhs[],
int nrhs, const mxArray *prhs[])
{
uint8_t *output_buffer;
mwSize *size;
size = (mwSize *) mxGetPr(prhs[0]);
plhs[0] = mxCreateNumericMatrix(1, size[0], mxUINT8_CLASS, mxREAL);
output_buffer = (uint8_t *) mxGetData(plhs[0]);
output_buffer = genData();
}
В основном моя функция genData () генерирует некоторые данные и возвращает их.
Я хотел бы получить результат в виде вывода, такого, что при наборе:
a = genData()
a будет содержать содержимое plhs [0], но это не работает.
Я пытался использовать mxSetData(plhs[0], output_buffer)
. Это работает, но вылетает тогда, когда вы делаете что-то еще ...
Я думаю, что ответ должен быть вполне очевидным, но я не очень разбираюсь в C.
Спасибо за вашу помощь .