2011-06-17 105 views
1

嗨我想从我的matlab发送一个值到我的mex函数。该值通常约为10位数字,我使用了无符号长整型数据类型。如何将值传递给mex文件

但我有困难从mexfile访问它。 mxGetPr返回double类型,那么是否需要进行一些类型转换?

+0

这是一个浮点值,它存储为这样的 –

回答

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获取更多信息。

编辑:Also here's a list of the different types for mxIsClass