2016-11-10 8 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()を使用して配列の寸法を取得できます。