2016-11-10 95 views
0

我想打印终端的phrs值并检查它们的数据类型。我以为我得到了第一部分:C Matlab Mex网关文件,打印phrs

mexPrintf("Value: %d\n",prhs[0]); 

但这是给我垃圾。我错过了什么? (可能有些显而易见)有没有办法检查数据类型并将其打印出来?

回答

1

要检查prhs日期类型,我认为您可以使用mxGetClassName(prhs[0])。为了打印它的价值,你需要重新引用它,因为我没有记错。例如:

double* data = mxGetPr(prhs[0]); 
mexPrintf("Value: %f\n",data[0]); 

注意,mxGetPr返回指向double的指针,所以在本例中保留它。

1

prhs是一个指向mxArray的指针数组,对应于您的输入。 根据您输入的类型,你可以使用:

  • 如果你输入的是一个标:

double input = mxGetScalar(prhs[0]); printf("Value: %f\n",input);

  • 如果输入是一个数组:

double* input = mxGetPr(prhs[0]); printf("Value: %f\n",input[0]);

来获得一个指向你的数组值的指针,但是这里我们只打印第一个值。您可以使用mxGetDimensions()来获取数组的维数。