1

嗨,我想将一个值从我的 matlab 发送到我的 mex 函数。该值通常约为 10 位长,我使用了 unsigned long long 数据类型。

但我很难从 mexfile 访问它。mxGetPr 返回双精度类型,所以我需要进行一些类型转换吗?

4

1 回答 1

0

是的,我刚遇到这个。一般来说,你不应该再使用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])

您可以查找mxIsClassmxGetData了解更多信息。

编辑: 这里还有一个不同类型的列表mxIsClass

于 2011-06-17T17:19:53.507 回答