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