coder.typeof
エントリポイント関数の入力の型を表す coder.Type
オブジェクトを作成
構文
説明
メモ
coder.Type
オブジェクトの作成と編集は、コード生成の型エディターを使用して対話形式で行うこともできます。コード生成の型エディターを使用した入力の型の作成と編集を参照してください。
は type_obj
= coder.typeof(v
)coder.Type
から派生したオブジェクトを作成して、コード生成用に v
の型を表します。coder.typeof
は、入力パラメーターの型を指定する場合にのみ使用します。関数 codegen
の -args
オプションと併用したり、サンプル コードを提供して入力型を定義する際に MATLAB® Coder™ プロジェクト内でこの関数を使用します。コードの生成元となる MATLAB コード内では、この関数を使用しないでください。
では、type_obj
= coder.typeof(v
,sz
,variable_dims
)sz
で指定された上限サイズと、variable_dims
で指定された可変次元をもつ type_obj
= coder.typeof(v
) の変更されたコピーが返されます。
例
入力引数
出力引数
制限
スパース行列の場合、
coder.typeof
は可変サイズの次元の上限を下げます。GPU 配列の表現では、制限付きの数値と logical の基本データ型のみがサポートされます。スカラーの GPU 配列、構造体、cell 配列、クラス、列挙型、文字、半精度データ型、および固定小数点データ型はサポートされません。
coder.typeof
を使用して GPU 配列を表す場合、GPU コード構成オブジェクトのメモリ割り当て (malloc) モード プロパティを'discrete'
に設定しなければなりません。
ヒント
引数
variable_dims
で大きさが 1 の次元が可変サイズであることを明示的に指定していない限り、coder.typeof
は大きさが 1 の次元のサイズを固定します。たとえば、以下のコードでは 1 行 :10 列の double を指定します。最初の次元 (大きさが 1 の次元) は固定サイズです。2 番目の次元は可変サイズです。
一方、以下のコードでは :1 行 :10 列の double を指定します。どちらの次元も可変サイズになります。t = coder.typeof(5,[1 10],1)
t = coder.typeof(5,[1 10],[1 1])
メモ
MATLAB Function ブロックでは、入力信号または出力信号の大きさが 1 の次元は可変サイズにできません。
関数 type を使用して入力変数の型を既に指定している場合は、サイズも指定する場合を除き
coder.typeof
を使用しないでください。たとえば、coder.typeof(single(0))
ではなく、構文single(0)
を使用します。cell 配列型の場合、
coder.typeof
は cell 配列型が同種または異種混合のどちらであるかを判定します。cell 配列要素のクラスとサイズが同じ場合、
coder.typeof
は同種 cell 配列型を返します。要素のクラスが異なる場合、
coder.typeof
は異種混合 cell 配列型を返します。一部の cell 配列では、同種であるか異種混合であるかの分類はあいまいです。たとえば、{1 [2 3]} の型は、最初の要素が double で 2 番目の要素が 1 行 2 列の double の、1 行 2 列の異種混合型になります。また、この型を 1 行 3 列の同種型にして、その要素のクラスを double で、サイズを 1 行 :2 列にすることもできます。このようなあいまいなケースでは、
coder.typeof
はヒューリスティックな方法を使用して型を同種または異種混合として分類します。異なる分類が必要な場合は、coder.CellTypemakeHomogeneous
またはmakeHeterogeneous
メソッドを使用して必要な分類の型を作成します。makeHomogeneous
メソッドは型の同種コピーを作成します。makeHeterogeneous
メソッドは型の異種混合コピーを作成します。makeHomogeneous
メソッドとmakeHeterogeneous
メソッドは分類を異種混合および同種として永続的に割り当てます。これらのいずれかの方法を後で使用して分類が異なるコピーを作成することはできません。GPU 配列型を使用したコード生成で、エントリポイント関数へのいずれかの入力が GPU 配列型の場合、それらが GPU コード生成でサポートされていれば、出力変数がすべて GPU 配列型になります。たとえば、エントリポイント関数が
struct
を返す場合、struct
はサポートされていないため、生成コードは CPU 出力を返します。一方、サポートされている行列型が返される場合、生成コードは GPU 出力を返します。
バージョン履歴
R2011a で導入