coder.StructType クラス
パッケージ: coder
スーパークラス: coder.ArrayType
MATLAB 構造体配列のセットを表す
説明
生成されたコードが受け入れる構造体配列のセットを指定します。codegen
-args
オプションでのみ使用します。生成された MEX 関数に入力として渡さないでください。
構築
メモ
coder.Type
オブジェクトの作成と編集は、コード生成の型エディターを使用して対話形式で行うこともできます。コード生成の型エディターを使用した入力の型の作成と編集を参照してください。
t=coder.typeof(
では、スカラー構造体 struct_v
)struct_v
と同じフィールドをもつ構造体の coder.StructType
オブジェクトが作成されます。
t=coder.typeof(
では、struct_v
, sz
, variable_dims
)sz
で指定された上限のサイズと、可変の次元 variable_dims
をもつ coder.typeof(struct_v)
の変更されたコピーが返されます。sz
で次元に inf
を指定する場合は、次元のサイズは無限で、次元は可変サイズとみなされます。sz
が [] の場合は、struct_v
の上限のサイズは変化しません。variable_dims
入力パラメーターを指定しないと、制限のない次元を除き、この型の次元は固定とみなされます。variable_dims
がスカラーの場合は、1
または 0
(固定とみなされる) ではない制限付き次元に適用されます。
では、スカラー構造体 t
=coder.newtype('struct', struct_v
, sz
, variable_dims
)struct_v
と同じフィールドをもち、上限サイズ sz
と可変の次元 variable_dims
をもつ構造体配列の coder.StructType
オブジェクトが作成されます。sz
で次元に inf
を指定する場合は、次元のサイズは無限で、次元は可変サイズとみなされます。variable_dims
を指定しない場合は、制限のない次元を除き、この型の次元は固定とみなされます。variable_dims
がスカラーの場合は、この型の次元に適用されます。ただし、次元が 1
または 0
で固定とみなされる場合を除きます。
入力引数
|
新しい構造体型でフィールドの指定に使用されるスカラー構造体。 |
|
型オブジェクトの各次元を指定するサイズ ベクトル。 既定値: |
|
各次元のサイズが可変 (true) か、固定 (false) かを指定する logical ベクトル。 既定値: |
プロパティ
|
この型の構造体での実行時のメモリ配置 (バイト単位)。Embedded Coder® ライセンスをお持ちの場合、コード置換ライブラリ (CRL) を使用している場合は、置換関数に渡したデータ オブジェクトを指定の境界に配置する機能が CRL によって提供されます。この機能を使用すると、データを境界に合わせる必要があるターゲット固有の関数実装を利用できるようになります。既定では、この構造体は特定の境界に配置されていないため、配置を必要とする CRL の関数とは一致しません。
|
|
このセットの値のクラス。 |
|
構造体の型が外部で定義されているかどうかを示します。 |
|
構造体内の各フィールドの |
|
構造体の型が外部で定義されている場合、その構造体の外部定義を含むヘッダー ファイルの名前。たとえば、 既定では、生成されたコードには、標準ヘッダー ファイルの後にカスタム ヘッダー ファイル用の 空でない文字ベクトルまたは string スカラーでなければなりません。 |
|
このセットの配列のサイズの上限。 |
|
配列の各次元のサイズが固定か可変かを指定するのに使用するベクトル。ベクトルの要素が |
コピーのセマンティクス
値。値クラスがコピー操作に与える影響については、オブジェクトのコピーを参照してください。
例
可変サイズ フィールドをもつ構造体の型を作成します。
x.a = coder.typeof(0,[3 5],1); x.b = magic(3); coder.typeof(x) % Returns % coder.StructType % 1x1 struct % a: :3x:5 double % b: 3x3 double % ':' indicates variable-size dimensions
coder.StructType
オブジェクトを作成し、次に codegen
呼び出して、この型の入力パラメーターを 1 つもつ関数 fcn.m
のための C ライブラリを生成します。
新しい構造体型を作成します。
ta = coder.newtype('int8',[1 1]); tb = coder.newtype('double',[1 2],[1 1]); z = coder.newtype('struct',struct('a',ta,'b',tb)) % Returns % coder.StructType % 1x1 struct % a: 1x1 int8 % b: :1x:2 double
codegen
を呼び出して、この型の入力パラメーターを 1 つもつ MATLAB 関数fcn.m
のための C ライブラリを生成します。% Use the -config:lib option to generate a C library codegen -config:lib fcn -args {z}
外部で定義された構造体型を使用する coder.StructType
オブジェクトを作成します。
外部で定義された構造体型を使用する型を作成します。
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 = coder.StructType 1x1 extern mytype (myheader.h) struct a: 1x1 double b: 1x1 single
構造体フィールドの型を表示します。
T.Fields
ans = a: [1x1 coder.PrimitiveType] b: [1x1 coder.PrimitiveType]