Main Content

mxCreateStructArray (C)

C 構文

#include "matrix.h"
mxArray *mxCreateStructArray(
    mwSize ndim, const mwSize *dims, int nfields, const char **fieldnames);

説明

mxCreateStructArray を呼び出して、データの与えられていない構造体 mxArray を作成します。構造体 mxArray の各要素には、同じ数のフィールド (nfields で指定) が含まれています。各フィールドには fieldnames で指定された名前があります。MATLAB® 構造体 mxArray は、C 言語における structs の配列と概念的に同一です。

各フィールドには、NULL に初期化された 1 つの mxArray ポインターがあります。mxSetField または mxSetFieldByNumber を呼び出して、フィールドに NULL でない mxArray ポインターを配置します。

関数は、dims 引数で指定されている、後に続く大きさが 1 の次元を自動的に削除します。たとえば、ndim5dims[4 1 7 1 1] である場合、結果の配列の次元は 4 x 1 x 7 となります。

mxArray の使用が終わったら、mxDestroyArray を呼び出して、mxArray とそれに関連する要素の割り当てを解除します。

入力引数

すべて展開する

次元数。mwSize として指定します。ndim が 2 未満の場合、mxCreateStructArray は次元数を 2 に設定します。

次元配列。const mwSize の配列として指定します。

次元配列の各要素には、その次元の配列のサイズが含まれています。たとえば、57 列の配列を作成するには、dims[0] を 5 に、dims[1] を 7 に設定します。

通常、配列 dims には ndim 個の要素が含まれます。

各要素のフィールド数。int として指定します。

1 つ以上のフィールド名。const char ** として指定します。

フィールド名は有効な MATLAB 識別子でなければなりません。つまり、NULL や空にすることはできません。フィールド名では大文字と小文字が区別されます。フィールド名の最大長を決めるには、関数 namelengthmax を使用します。

出力引数

すべて展開する

mxArray へのポインター。mxArray * として指定します。

関数は、mxArray を作成するのに十分な空きヒープ領域がない場合、失敗します。

  • MEX ファイル — 関数は MEX ファイルを終了し、制御を MATLAB プロンプトに戻します。

  • スタンドアロン (非 MEX ファイル) アプリケーション — 関数は NULL を返します。

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

バージョン履歴

R2006a より前に導入