Я хочу передать целочисленный массив из MATLAB в C. Я пробовал использовать тип uint64_T, но он продолжает сбой. Получение двойного указателя, использующего mxGetPr(), отлично работает, но мне нужно придумать содержимое в целое число и сделать это на каждой итерации может быть медленным.с использованием целочисленных массивов на mex
Я попытался это в mexFunction:
uint64_T *l;
l= (uint64_T *)mxGetData(prhs[1]);
Функция вызова этой переменной имеет такой вид:
void XAction(const double *v, const uint64_T *l, double *w)
{
for (j=c; j; j--)
for (i=r-1; i; i--)
w[i] =v[l[r*j +i]]
}
Могу ли я сделать ошибку в типажей?
Я видел этот ответ: how to read an integer array in MEX-function, но я не смог добиться прогресса.
Чтобы сделать вопрос более точным, 'L = (двойной *) mxGetData (prhs [1])' работает, но 'л = (ИНТ *) mxGetData (prhs [1]) 'не делает. Во втором случае указатель содержит значения нежелательных сообщений. – user2426897
все эти однобуквенные имена переменных затрудняют чтение вашего кода. Откуда взялось c? р? Каковы ваши входы? –