2016-11-10 2 views
0

Ich möchte die Werte von phrs an Terminal drucken und überprüfen Sie ihren Datentyp. Ich dachte, ich hätte den ersten Teil:C Matlab Mex Gateway-Datei, Drucken phrs

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

Aber das ist mir Müll. Was vermisse ich? (Wahrscheinlich etwas Offensichtliches) Gibt es eine Möglichkeit, Datentypen zu überprüfen und auszudrucken?

Antwort

1

Um prhs Datum Typ zu überprüfen, denke ich, dass Sie mxGetClassName(prhs[0]) verwenden können. Um seinen Wert zu drucken, müssen Sie ihn erneut dereferenzieren, wenn ich mich richtig erinnere. Zum Beispiel:

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

Hinweis, mxGetPr, kehrt Zeiger zu verdoppeln, beließ es so in diesem Beispiel.

1

prhs ist ein Array von Zeigern zu mxArray s entsprechend Ihren Eingaben. Je nach Art Ihrer Eingaben können Sie verwenden:

  • wenn Sie Ihre Eingabe ein Skalar:

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

  • wenn Sie Ihre Eingabe ein Array ist:

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

, um einen Zeiger auf Ihr Wertefeld zu erhalten, aber hier drucken wir nur den ersten Wert. Sie können mxGetDimensions() verwenden, um die Dimensionen des Arrays abzurufen.

Verwandte Themen