编辑和表示编码器类型对象和属性
将对象传递给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
。