主要内容

编辑和表示编码器类型对象和属性

将对象传递给coder.typeof或将类名作为字符串标量传递给coder.newtype创建一个对象,该对象表示用于代码生成的对象类型。

编码器类型对象显示对象属性的简洁描述,同时排除内部状态值。非常量属性显示它们的类型和大小,而常量属性只显示它们的值。

若要创建编码器类型对象,请将兼容对象传递给coder.typeof。例如:

T =绝对的({“r”‘g’“b”});tType = coder.typeof(t)

变量的表示t是否存储在编码类型对象中

tType = matlab.coder.type.CategoricalType 1x3 categorical类别:3x1同质单元序号:1x1逻辑保护:1x1逻辑

对象属性

您可以编辑编码器类型对象的属性。可以将标量值分配给对象属性。将值分配给编码器类型对象属性时,将隐式地将其转换为相应的编码器类型值。代码生成器隐式地将分配给编码器类型对象属性的常量转换为编码器。常数值。你可以调整对象本身的大小

通过使用调整对象的大小coder.resize

可以调整大多数对象的大小coder.resize。你可以调整对象的大小,它的属性,并在属性中创建数组。

例如,对于a时间表对象,你可以调整对象的大小:

时间表((1:5)',(11:15)',“SampleRate”1);tType = coder.typeof(t);tType =编码器。resize(tType, [10 2],[10 10])

的大小时间表到一个: 10 x2对象。

tType = matlab.coder.type.RegularTimetableType:10x2时间表数据:1x2均匀单元描述:1x0 char UserData: 0x0 double DimensionNames: {'Time'} {'Variables'}变量名称:{'Var1'} {'Var2'}变量描述:1x2均匀单元变量单元:1x2均匀单元变量连续性:1x2 matlab.internal.coder. tabularer . continuity StartTime: 1x1 matlab.coder.type.DurationType SampleRate: 1x1 double TimeStep: 1x1 matlab.coder.type.DurationType

的常数性质显示它们的值。非常量属性只显示它们的类型和大小。

请注意

并非所有类型都表示MATLAB®类兼容coder.resize

通过编辑对象属性调整对象大小

可以通过编辑属性本身来调整对象的大小。对于一个持续时间编码器类型对象x,编辑大小属性以根据需要更改大小。

X = coder.typeof(duration((1:3),0,0));x.Size = [10 10]

此代码更改编码器类型对象的大小。

x = matlab.coder.type.DurationType 10x10 duration

也可以将编码器类型对象设置为可变大小VarDims国旗:

x.VarDims(2) = true

编码器类型对象的第二次维的上限为10

x = matlab.coder.type.DurationType 10x:10 duration格式:1x8 char

编码器类型对象的遗留表示

在R2021a中,呼叫coder.typeof不再返回编码器。ClassType对象。如果您的工作流需要编码类型对象的遗留表示形式,请使用getCoderType函数作用于具有类或对象的新表示的变量。的遗留表示形式datetime变量,则使用具有新表示的变量tt打电话给getCoderType功能:

T =日期时间;Tt = coder.typeof(t);ttLegacy = tt.getCoderType()

在编码器类型编辑器中,代码生成器包含该函数getCoderType对于编码器类型对象。使用此函数返回编码器类型的遗留表示形式。看到的,使用编码器类型编辑器创建和编辑输入类型

某些MATLAB数据类型为MATLAB代码生成提供了自定义的类型表示。在其他情况下,类型用编码器。ClassType

另请参阅

|||