このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
coder 型オブジェクトとプロパティの編集および表現
オブジェクトを coder.typeof
に渡すか、クラス名を string スカラーとして coder.newtype
に渡すと、コード生成のためのオブジェクトの型を表すオブジェクトが作成されます。
coder 型オブジェクトは、内部状態の値を除外して、オブジェクトのプロパティの簡潔な説明を表示します。非定数プロパティについては型とサイズが表示され、定数プロパティについてはその値だけが表示されます。
coder 型オブジェクトを作成するには、互換性があるオブジェクトを coder.typeof
に渡します。次に例を示します。
t = categorical({'r','g','b'}); tType = coder.typeof(t)
変数 t
の表現が coder 型オブジェクト tType
に格納されます。
tType = matlab.coder.type.CategoricalType 1x3 categorical Categories : 3x1 homogeneous cell Ordinal : 1x1 logical Protected : 1x1 logical
オブジェクトのプロパティ
coder 型オブジェクトのプロパティを編集できます。オブジェクトのプロパティにスカラー値を割り当てることができます。coder 型オブジェクトのプロパティに値を割り当てると、対応する coder 型の値に暗黙的に変換されます。コード ジェネレーターは、coder 型オブジェクトのプロパティに割り当てられた定数を暗黙的に coder.Constant
の値に変換します。オブジェクト自体のサイズを変更できます。
coder.resize
を使用したオブジェクトのサイズ変更
ほとんどのオブジェクトは、coder.resize
を使用してサイズ変更できます。オブジェクトやそのプロパティのサイズを変更したり、プロパティ内で配列を作成したりできます。
たとえば、timetable
coder オブジェクトについて、オブジェクトのサイズを次のように変更できます。
t = timetable((1:5)',(11:15)','SampleRate',1);
tType = coder.typeof(t);
tType = coder.resize(tType, [10 2],[1 0])
このコードは、timetable
を :10x2
のオブジェクトにサイズ変更します。
tType = matlab.coder.type.RegularTimetableType :10x2 timetable Data : 1x2 homogeneous cell Description : 1x0 char UserData : 0x0 double DimensionNames : {'Time'} {'Variables'} VariableNames : {'Var1'} {'Var2'} VariableDescriptions : 1x2 homogeneous cell VariableUnits : 1x2 homogeneous cell VariableContinuity : 1x2 matlab.internal.coder.tabular.Continuity StartTime : 1x1 matlab.coder.type.DurationType SampleRate : 1x1 double TimeStep : 1x1 matlab.coder.type.DurationType
tType
の定数プロパティについては、その値が表示されます。非定数プロパティについては、その型とサイズだけが表示されます。
メモ
MATLAB® クラスを表すすべての型が coder.resize
と互換性があるわけではありません。
オブジェクトのプロパティの編集によるオブジェクトのサイズ変更
プロパティ自体を編集してオブジェクトのサイズを変更できます。duration
coder 型オブジェクト x
について、Size
プロパティを編集して必要なサイズに変更します。
x = coder.typeof(duration((1:3),0,0)); x.Size = [10 10]
このコードは、coder 型オブジェクトのサイズを変更します。
x = matlab.coder.type.DurationType 10x10 duration Format : 1x8 char
VarDims
フラグを設定して、coder 型オブジェクトを可変サイズにすることもできます。
x.VarDims(2) = true
coder 型オブジェクトの 2 番目の次元は上限が 10
になります。
x = matlab.coder.type.DurationType 10x:10 duration Format : 1x8 char
coder 型オブジェクトの従来の表現
R2021a では、coder.typeof
の呼び出しで coder.ClassType
オブジェクトは返されなくなりました。ワークフローで coder 型オブジェクトの従来の表現が必要な場合は、クラスまたはオブジェクトの新しい表現をもつ変数で関数 getCoderType
を使用します。たとえば、変数 datetime
の従来の表現を取得するには、新しい表現 tt
をもつ変数を使用して関数 getCoderType
を呼び出します。
t = datetime; tt = coder.typeof(t); ttLegacy = tt.getCoderType()
コード生成の型エディターで、コード ジェネレーターは coder 型オブジェクトに対する関数 getCoderType
を含めます。この関数を使用して coder 型の従来の表現を返します。コード生成の型エディターを使用した入力の型の作成と編集を参照してください。
一部の MATLAB データ型には、MATLAB コード生成用にカスタマイズされた型の表現があります。それ以外については、coder.ClassType
を使用して型が表されます。
参考
coder.resize
| coder.newtype
| coder.typeof
| 可変サイズの配列のコード生成