| 外部インタフェース/API リファレンス | ![]() |
構造体配列の中のフィールド値、与えられたフィールド番号とインデックスを取得
C 言語表示
#include "matrix.h" mxArray *mxGetFieldByNumber(const mxArray *array_ptr, int index, int field_number);
index
mxArrayの最初の要素は0のindexをもち、2番目の要素は1のindexをもち、最後の要素はN-1のindexをもちます。ここで、Nは構造体mxArrayの要素の総数です。indexの計算の詳細は、mxCalcSingleSubscriptを参照してください。
field_number
0、2番目のフィールドはフィールド番号が1、のようになります。最後のフィールドは、フィールド番号がN-1です。ここで、Nはフィールド数です。
戻り値
成功した場合は、希望する要素の指定したフィールド内のmxArrayのポインタ。無効な引数を渡したり、指定したフィールドに値が割り当てられていない場合は、NULLを出力します。一般的な失敗の原因は以下の通りです。
mxArrayを指し示さないarray_ptrを指定。array_ptrが構造体のmxArrayを指すかどうかを決定するためには、mxIsStructを呼び出してください。mxGetFieldNameByNumberまたはmxGetFieldNumberを呼び出してください。詳細
mxGetFieldByNumber を呼び出すことによって、インデックス付けられた要素の指定したfield_numberにある値を取得します。
注意
MEX-ファイルの入力は、リードオンリーのmxArrayの定数で、変更できません。mxSetCell*またはmxSetField*を使って、MATLABから渡される引数のセルまたはフィールドを変更すると、予期しない結果になることがあります。 |
mxGetField(pa, index, "field_name");
field_num = mxGetFieldNumber(pa, "field_name"); mxGetFieldByNumber(pa, index, field_num);
例題
examplesディレクトリのrefbookサブディレクトリのphonebook.cを参照してください。
さらに、examplesディレクトリのmxサブディレクトリのmxisclass.cと、examplesディレクトリのmexサブディレクトリのexplore.cを参照してください。
参考
mxGetField, mxGetFieldNameByNumber, mxGetFieldNumber, mxGetNumberOfFields, mxSetField, mxSetFieldByNumber
| mxGetField | mxGetFieldNameByNumber | ![]() |