C Matlab Mex 网关文件,打印 phrs

C Matlab Mex gateway file, printing phrs

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

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

但这给了我垃圾。我错过了什么? (可能很明显)有没有办法检查数据类型并打印出来?

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

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

注意,mxGetPr,returns 指向 double 的指针,因此在此示例中将其保留。

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

  • 如果您的输入是标量:

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

  • 如果您的输入是数组:

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

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