外部インタフェース/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 | ![]() |