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 より前に導入