Main Content

coder.StructType クラス

パッケージ: coder
スーパークラス: coder.ArrayType

入力仕様に対して許容される MATLAB 構造体配列のセットを表す

説明

coder.StructType のオブジェクトは、生成されたコードが受け入れる構造体配列を指定します。このクラスのオブジェクトは、codegen コマンドの -args オプションでのみ使用します。生成された MEX 関数に入力として渡さないでください。

作成

t = coder.typeof(structV) は、スカラー構造体 struct_v と同じフィールドをもつ構造体の coder.StructType オブジェクトを作成します。

t = coder.typeof(structV,sz,variableDims) は、sz で指定された上限サイズと variableDims で示された可変次元をもつ coder.StructType を作成します。sz で次元に Inf を指定すると、その次元はサイズの制限のない可変サイズになります。sz[] の場合、structV の上限サイズは変化しません。variableDims を指定しないと、この型の制限付き次元は固定になります。variableDims がスカラーの場合、この関数は固定の 1 または 0 でない制限付き次元にこの値を適用します。

t = coder.newtype('struct',structV,sz,variableDims) は、スカラー構造体 structV と同じフィールドをもち、上限サイズ szvariableDims で示された可変次元をもつ構造体の配列の coder.StructType オブジェクトを作成します。sz で次元に Inf を指定すると、その次元はサイズの制限のない可変サイズと見なされます。variableDims を指定しないと、この型の制限付き次元は固定になります。variableDims がスカラーの場合、この関数は固定の 1 または 0 でない制限付き次元にこの値を適用します。

メモ

coder.Type オブジェクトの作成と編集は、コード生成の型エディターを使用して対話形式で行うことができます。コード生成の型エディターを使用した入力の型の作成と編集を参照してください。

入力引数

すべて展開する

新しい構造体型のフィールドを指定する入力構造体変数。スカラー構造体として指定します。

型オブジェクトの次元のサイズ。整数のベクトルとして指定します。

各次元が可変サイズかどうかを指定するオプション。boolean ベクトルとして指定します。このベクトルの要素を 1 と指定すると、対応する次元が可変サイズになります。それ以外の場合、次元は固定サイズになります。

プロパティ

すべて展開する

この型の構造体での実行時のメモリ配置 (バイト単位)。

Embedded Coder® ライセンスがある場合、コード置換ライブラリ (CRL) を使用すると、置換関数に入力として指定したデータ オブジェクトを指定の境界に配置できます。この機能は、データを境界に合わせる必要があるターゲット固有の関数実装を利用する場合に使用します。既定では、構造体はクラスで特定の境界に配置されないため、配置を必要とする CRL の関数は既定の構造体と一致しません。

値クラス名。string スカラーとして返されます。

構造体が外部で定義されたものかどうか。1 または 0 として返されます。値 1 は構造体が外部で定義されていることを示します。値 0 は構造体が内部で定義されていることを示します。

構造体のフィールドの型。構造体として指定します。

外部ヘッダー ファイルの名前。空でない文字ベクトルまたは string スカラーとして返されます。構造体の型が外部で定義されている場合、その構造体の外部定義を含むヘッダー ファイルの名前。たとえば、"mystruct.h" などです。codegen -I オプションまたは MATLAB® Coder™ の [プロジェクトの設定] の [カスタム コード] タブにある [追加インクルード ディレクトリ] パラメーターを使用して、ファイルへのパスを指定します。

既定では、生成されたコードには、標準ヘッダー ファイルの後にカスタム ヘッダー ファイル用の #include ステートメントが含まれます。標準ヘッダー ファイルがカスタムの構造体型を参照している場合は、コンパイルが失敗します。HeaderFile プロパティを指定すると、MATLAB Coder によってヘッダー ファイルが必要な場所にインクルードされます。

型オブジェクトの上限。整数のベクトルまたはスカラーの整数として指定します。

配列の各次元が固定サイズであるか可変サイズであるかを指定するオプション。値 1 は対応する要素が可変サイズであることを示します。値 0 は対応する要素が固定サイズであることを示します。

すべて折りたたむ

この例では、可変サイズのフィールドをもつ構造体の型を作成する方法を示します。

coder.typeof を使用して型オブジェクトを作成します。

x.a = coder.typeof(0,[3 5],1);
x.b = magic(3);
t = coder.typeof(x)
t = 
coder.StructType
   1×1 struct
      a: :3×:5 double
      b: 3×3 double

外部で定義された構造体型の作成

外部で定義された構造体型を作成します。

S.a = coder.typeof(double(0));
S.b = coder.typeof(single(0));
T = coder.typeof(S);
T = coder.cstructname(T,'mytype','extern',HeaderFile='myheader.h');

構造体フィールドの型を表示します。

T.Fields
ans = struct with fields:
    a: [1x1 coder.PrimitiveType]
    b: [1x1 coder.PrimitiveType]

構造体型を作成します。

ta = coder.newtype('int8',[1 1]);
tb = coder.newtype('double',[1 2],[1 1]);
z = coder.newtype('struct',struct('a',ta,'b',tb))
coder.StructType
   1x1 struct
      a: 1x1 int8 
      b: :1x:2 double  

この型の入力パラメーターを 1 つもつ MATLAB 関数 fcn.m のための C ライブラリを生成します。

codegen -config:lib fcn -args {z}

バージョン履歴

R2011a で導入