【发布时间】:2011-06-17 16:22:20
【问题描述】:
您好,我想将一个值从我的 matlab 发送到我的 mex 函数。该值通常约为 10 位长,我使用了 unsigned long long 数据类型。
但我很难从 mexfile 访问它。 mxGetPr 返回 double 类型,所以我需要做一些类型转换吗?
【问题讨论】:
-
它是一个浮点值,所以存储它
您好,我想将一个值从我的 matlab 发送到我的 mex 函数。该值通常约为 10 位长,我使用了 unsigned long long 数据类型。
但我很难从 mexfile 访问它。 mxGetPr 返回 double 类型,所以我需要做一些类型转换吗?
【问题讨论】:
是的,我刚遇到这个。一般来说,您不应该再使用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 了解更多信息。
【讨论】: