外部インタフェース/API リファレンス | ![]() ![]() |
与えられたフィールド番号とインデックスから構造体配列のフィールド値を設定
C 言語表示
#include "matrix.h" void mxSetFieldByNumber(mxArray *array_ptr, int index, int field_number, mxArray *value);
引数
array_ptr
構造体mxArray
のポインタ。mxIsStruct
を呼び出すことによって、array_ptr
ポインタが構造体mxArray
を指すかどうかを決定します。
index
mxArray
の1番目の要素のインデックスは0、2番目の要素のインデックスは1、最後の要素のインデックスはN-1
です。ここで、N
mxArray内の要素の総数です。インデックスの計算の詳細は、mxCalcSingleSubscript
を参照してください。
field_number
field_number
が0で、2番目のフィールドはfield_number
が1、等です。最後のフィールドはfield_number
がN-1
です。ここでN
はフィールド数です。
value
注意
MEX-ファイルの入力は、定数でリードオンリーのmxArray で、変更できません。mxSetCell* またはmxSetField* を使ってMATLABから渡される引数のフィールドまたはセルを変更すると、予期しない結果を生じます。 |
詳細
mxSetFieldByNumber
を用いて、指定したフィールドの指定した要素にvalue
を割り当てます。mxSetFieldByNumber
はほとんどmxSetField
と同じですが、前者はフィールド数を3番目の引数としてもち、後者はフィールド名を3番目の引数としてもちます。
mxSetField(pa, index, "field_name", new_value_pa);
field_num = mxGetFieldNumber(pa, "field_name"); mxSetFieldByNumber(pa, index, field_num, new_value_pa);
例題
examples
ディレクトリのmx
サブディレクトリのmxcreatestructarray.c
を参照してください。さらに、examples
ディレクトリのrefbook
サブディレクトリのphonebook.c
を参照してください。
参考
mxCreateStructArray
, mxCreateStructMatrix
, mxGetField
, mxGetFieldByNumber
, mxGetFieldNameByNumber
, mxGetFieldNumber
, mxGetNumberOfFields
, mxIsStruct
, mxSetField
![]() | mxSetField | mxSetImagData | ![]() |