2016-11-10 92 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()來獲取數組的維數。