Как передать значения в mex файлы - PullRequest
1 голос
/ 17 июня 2011

Привет. Я хочу отправить значение из моего matlab в мою функцию mex.Значение обычно составляет около 10 цифр, и я использовал тип данных long unsigned long.

Но мне трудно получить к нему доступ из мексфайла.mxGetPr возвращает тип double, так что мне нужно сделать какое-то преобразование типа?

1 Ответ

0 голосов
/ 17 июня 2011

Да, я только что столкнулся с этим. Вам больше не следует использовать mxGetPr. Лучший способ сделать это - сначала проверить тип следующим образом:

if(!mxIsClass(prhs[0],"double"))
{
    mexErrMsgTxt("Data must be of type double!!!\n");
}

Затем получите доступ к данным через (double *)mxGetData(prhs[0]) или в вашем случае (unsigned long long int*)mxGetData(prhs[0])

Вы можете посмотреть mxIsClass и mxGetData для получения дополнительной информации.

Редактировать: Также вот список различных типов для mxIsClass

...