Main Content

mxGetFieldNameByNumber (C および Fortran)

構造体配列からフィールド名へのポインター (フィールド番号を指定)

C 構文

#include "matrix.h"
const char *mxGetFieldNameByNumber(const mxArray *pm, int fieldnumber);

Fortran 構文

#include "fintrf.h"
character*(*) mxGetFieldNameByNumber(pm, fieldnumber)
mwPointer pm
integer*4 fieldnumber

引数

pm

構造体 mxArray へのポインター

fieldnumber

目的のフィールドの位置。たとえば C では、最初のフィールドの名前を取得するには、fieldnumber を 0 に設定します。2 番目のフィールドの名前を取得するには、fieldnumber を 1 に設定します (以下同様)。Fortan では、最初のフィールドの名前を取得するには、fieldnumber1 に設定します。2 番目のフィールドの名前を取得するには、fieldnumber2 に設定します (以下同様)。

戻り値

成功した場合、n 番目のフィールド名へのポインター。失敗した場合は C では NULL (Fortran では 0) を返します。よくある失敗の原因には、以下があります。

  • 構造体 mxArray を指していない配列ポインター pm を指定している。mxIsStruct を呼び出して、pm が構造体 mxArray を指しているかどうかを判断します。

  • fieldnumber の値を構造体 mxArray のフィールド数の範囲外で指定している。C では、fieldnumber 0 は最初のフィールドを表し、fieldnumber N-1 は最後のフィールドを表します。ここで、N は構造体 mxArray 内のフィールドの数です。Fortran では、fieldnumber 1 は最初のフィールドを表し、fieldnumber N は最後のフィールドを表します。

説明

mxGetFieldNameByNumber を呼び出して、任意の構造体 mxArray 内のフィールドの名前を取得します。mxGetFieldNameByNumber の一般的な用途として、ループ内で呼び出して、任意の mxArray 内の全フィールドの名前を取得することがあげられます。

次のように初期化される MATLAB® 構造体を考えます。

patient.name = 'John Doe';
patient.billing = 127.00;
patient.test = [79 75 73; 180 178 177.5; 220 210 205];

C では、フィールド番号 0name フィールドを表し、フィールド番号 1billing フィールドを表し、フィールド番号 2test フィールドを表します。01、または 2 以外のフィールド番号を指定すると、mxGetFieldNameByNumberNULL を返します。

Fortan では、フィールド番号 1name フィールドを表し、フィールド番号 2billing フィールドを表し、フィールド番号 3test フィールドを表します。12、または 3 以外のフィールド番号を指定すると、mxGetFieldNameByNumber0 を返します。

matlabroot/extern/examples/refbook の次の例を参照してください。

matlabroot/extern/examples/mx の次の例を参照してください。

matlabroot/extern/examples/mex の次の例を参照してください。

バージョン履歴

R2006a より前に導入