C Matlab Mex网关文件,打印phrs

时间:2016-11-10 00:16:52

标签: c matlab mex

我想将phrs的值打印到终端并检查它们的数据类型。我以为我得到了第一部分:

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

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

2 个答案:

答案 0 :(得分:1)

要检查prhs日期类型,我认为您可以使用mxGetClassName(prhs[0])。要打印它的值,你需要再次取消引用它,正如我记得的那样。例如:

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

注意,mxGetPr返回指向double的指针,因此在此示例中保留它。

答案 1 :(得分:1)

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

  • 如果您的输入是标量:

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

  • 如果您的输入是数组:

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

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