我想将phrs的值打印到终端并检查它们的数据类型。我以为我得到了第一部分:
mexPrintf("Value: %d\n",prhs[0]);
但那给了我垃圾。我错过了什么? (可能是显而易见的事情)有没有办法检查数据类型并打印出来?
答案 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()
来获取数组的尺寸。