| 外部インタフェース/API リファレンス | ![]() |
C 言語表示
#include "matrix.h" int mxGetFieldNumber(const mxArray *array_ptr, const char *field_name);
field_name
mxArrayのフィールド名。
戻り値
成功した場合は、指定したfield_nameのフィールド番号。最初のフィールドはフィールド番号が0で、2番目のフィールドはフィールド番号が1、等です。失敗した場合は、-1を出力します。一般的な失敗の原因は以下の通りです。
mxArrayを指し示さないarray_ptrを指定。array_ptrが構造体のmxArrayを指すかどうかを決定するためには、mxIsStructを呼び出してください。field_nameを指定。詳細
フィールド名がわかっていて、フィールド番号がわからない場合は、mxGetFieldNumberを呼び出してください。反対に、フィールド番号がわかっていてフィールド名がわからない場合は、mxGetFieldNameByNumberを呼び出してください。
たとえば、つぎのように初期化されたMATLAB構造体を考えます。
patient.name = 'John Doe'; patient.billing = 127.00; patient.test = [79 75 73; 180 178 177.5; 220 210 205];
field_name "name"はフィールド番号が0で、field_name "billing"はフィールド番号が1で、field_name "test"はフィールド番号が2です。mxGetFieldNumberを呼び出して、field_nameを"name", "billing", "test"以外に指定した場合、mxGetFieldNumberは-1を出力します。
mxGetField(pa, index, "field_name");
field_num = mxGetFieldNumber(pa, "field_name"); mxGetFieldByNumber(pa, index, field_num);
例題
examplesディレクトリのmxサブディレクトリのmxcreatestructarray.cを参照してください。
参考
mxGetField, mxGetFieldByNumber, mxGetFieldNameByNumber, mxGetNumberOfFields, mxSetField, mxSetFieldByNumber
| mxGetFieldNameByNumber | mxGetImagData | ![]() |