Как передать значения в mex-файлы

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

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


person koder    schedule 17.06.2011    source источник
comment
это значение с плавающей запятой, поэтому сохраните его как таковое   -  person David Heffernan    schedule 17.06.2011


Ответы (1)


Да, я только что столкнулся с этим. Вы не должны больше использовать 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

person Chris A.    schedule 17.06.2011