定义数据类
这个例子展示了如何子类仿真软件金宝app®数据类。
使用MATLAB®包中的类语法来创建一个数据类。可选地,将属性分配给数据类和定义存储类。
用一个例子来定义数据类
查看
+金宝app SimulinkDemos
数据类包文件夹
(开放)。matlabroot
/工具/模型/ s金宝appimdemos / dataclasses这个包包含预定义的数据类。
将文件夹复制到你想要的位置来定义数据类。
重命名文件夹
+ mypkg
并将它的父文件夹添加到MATLAB路径。修改数据类定义。
手动定义数据类
创建一个包文件夹
+ mypkg
并将它的父文件夹添加到MATLAB路径。创建类文件夹
@ phase
和@Signal
内部+ mypkg
。请注意
金宝app模型需要定义数据类
+包/ @Class
文件夹。在
@ phase
文件夹中,创建一个MATLAB文件Parameter.m
打开该文件进行编辑。定义一个数据类的一个子类
金宝appSimulink.Parameter
使用MATLAB类语法。classdef参数< Simulink金宝app.Parameter结束% classdef
使用一个自定义类名之外参数
或信号
使用自定义名称,名称类文件夹。例如,定义一个类mypkg.myParameter
:
定义数据类的一个子类
金宝appSimulink.Parameter
或金宝appSimulink.Signal
。classdefmyParameter < 金宝appSimulink.Parameter结束% classdef
在类定义,构造函数的方法
myParameter
或mySignal
。名字的类文件夹,其中包含类定义的
@myParameter
或@mySignal
。
可选:类添加属性数据
的属性
和结束
关键词附上一个属性定义块。
classdef参数< Simulink金宝app.Parameter属性%不受约束的属性类型Prop1 = [];结束属性(PropertyType =“逻辑标量”)Prop2 = false;结束属性(PropertyType =“字符”)Prop3 =”;结束属性(PropertyType =“字符”,…AllowedValues = {“红色”;“绿色”;“蓝”})Prop4 =“红色”;结束结束% classdef
如果你添加属性的一个子类金宝appSimulink.Parameter
,金宝appSimulink.Signal
,或金宝appSimulink.CustomStorageClassAttributes
,您可以指定下列属性类型。
属性类型 | 语法 |
---|---|
两倍数量 | 属性(PropertyType =“双标量”) |
int32数量 | 属性(PropertyType = int32标量) |
逻辑数 | 逻辑标量属性(PropertyType = ' ') |
特征向量(字符) | 属性(PropertyType =“字符”) |
有限的特征向量组允许的值 | 属性(PropertyType =“字符”,AllowedValues = {' a ', ' b ', ' c '}) |
如果你使用MATLAB属性验证(见验证属性值(MATLAB))来代替PropertyType
和AllowedValues
,房地产验证不影响外观的属性对话框类。例如,一个布尔(布尔
)属性没有出现在属性对话框作为一个复选框。这是一个最佳实践PropertyType
和AllowedValues
而MATLAB属性验证。
可选:初始化代码添加到数据类
您可以添加您的数据类中的构造函数执行在实例化类时初始化活动。
在这个例子中,构造函数初始化对象的价值obj
基于一个可选的输入参数。
classdef参数< Simulink金宝app.Parameter方法函数obj =参数(optionalValue)如果(输入参数个数= = 1)obj。值= optionalValue;结束结束结束%的方法结束% classdef
可选:定义存储类
使用setupCoderInfo
方法配置CoderInfo
您的类的对象。然后,创建一个调用useLocalCustomStorageClasses
方法和开放的自定义存储类设计师。
在自己的数据类,在构造函数中调用
useLocalCustomStorageClasses
方法。classdef参数< Simulink金宝app.Parameter方法函数setupCoderInfo (obj) useLocalCustomStorageClasses (obj,“mypkg”);obj.CoderInfo。StorageClass =“自定义”;结束结束%的方法结束% classdef
打开自定义存储类设计师为您的包。
cscdesigner (“mypkg”)
定义存储类。
可选:为存储类定义自定义属性
创建一个MATLAB文件
myCustomAttribs.m
打开该文件进行编辑。保存这个文件+ mypkg / @myCustomAttribs
文件夹,+ mypkg
文件夹包含吗@ phase
和@Signal
文件夹。定义一个子类
金宝appSimulink.CustomStorageClassAttributes
使用MATLAB类语法。例如,考虑一个使用原始的存储类,它定义了数据标识符,还提供了数据的另一个名称生成的代码。classdefmyCustomAttribs < 金宝appSimulink.CustomStorageClassAttributes属性(PropertyType =“字符”)AlternateName =”;结束结束% classdef
覆盖默认的实现
isAddressable
方法来确定存储类是可写的。classdefmyCustomAttribs < 金宝appSimulink.CustomStorageClassAttributes属性(PropertyType =“逻辑标量”)IsAlternateNameInstanceSpecific = true;结束方法函数retVal = isAddressable (hObj hCSCDefn hData) retVal = false;结束结束%的方法结束% classdef
覆盖默认的实现
getInstanceSpecificProps
方法。有关示例,请参见
CSCTypeAttributes_FlatStructure.m
在文件夹
(开放),matlabroot
、工具箱、仿真软件金宝app\仿真软件\ dataclasses \ +仿真软件\ @CSCTypeAttributes_FlatStructureCSCTypeAttributes_Unstructed.m
在文件夹
(开放)。matlabroot
、工具箱、仿真软件金宝app\仿真软件\ dataclasses \ + mpt \ @CSCTypeAttributes_Unstructed请注意
这是一个可选的步骤。默认情况下,所有自定义属性为每个数据对象特定,并可以修改。然而,您可以限制哪些属性可以是特定的。
覆盖默认的实现
getIdentifiersForInstance
方法为对象的数据类定义标识符。请注意
在其默认的实现中,该方法查询的名称或标识符标识符的数据对象,并使用生成的代码。通过重写这个方法,你可以控制你的数据对象的标识符生成的代码。
classdefmyCustomAttribs < 金宝appSimulink.CustomStorageClassAttributes属性(PropertyType =“字符”)GetFunction =”;SetFunction =”;结束方法函数retVal = getIdentifiersForInstance (hCSCAttrib,…hCSCDefn hData,标识符)retVal =结构(“GetFunction”,…hData.CoderInfo.CustomAttributes.GetFunction,…“SetFunction”,hData.CoderInfo.CustomAttributes.SetFunction);结束%结束%的方法结束% classdef
如果您使用的是分组存储类,覆盖默认的实现
getIdentifiersForGroup
方法为集团指定的标识符生成的代码。例如,看到的
CSCTypeAttributes_FlatStructure.m
在文件夹
(开放)。matlabroot
、工具箱、仿真软件金宝app\仿真软件\ dataclasses \ +仿真软件\ @CSCTypeAttributes_FlatStructure