| 外部インタフェース/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です。ここで、NmxArray内の要素の総数です。インデックスの計算の詳細は、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 | ![]() |