在将枚举数据添加到状态流之前®图表,您必须在MATLAB中定义枚举数据类型®类定义文件。为每个枚举类型创建不同的文件。看到通过使用枚举数据按名称引用值.
枚举数据类型定义由三段代码组成。
代码部分 | 需要吗? | 目的 |
---|---|---|
classdef |
是的 |
提供枚举数据类型的名称 |
枚举 |
是的 |
列出该数据类型允许的枚举值 |
方法 |
没有 |
提供自定义数据类型的方法 |
打开一个用于存储数据类型定义的新文件。从首页选项卡在MATLAB工具条上,选择新>类.
完成classdef
节的定义。
classdefBasicColors < 万博1manbetxSimulink。IntEnumType...结束
的classdef
节用名称定义枚举数据类型BasicColors
.状态流从内置类型派生数据类型万博1manbetx仿真软件。IntEnumType
.枚举的数据类型名称在数据类型名称和工作空间变量名称中必须是唯一的。
类中定义枚举值枚举
部分。
classdefBasicColors < 万博1manbetxSimulink。IntEnumType枚举红(0)黄(1)绿(2)结束结束
枚举类型可以定义任意数量的值。的枚举
节列出此数据类型允许的枚举值集。每个枚举值由一个名称和一个底层整数值组成。每个名称在其类型中必须是唯一的,但也可以出现在其他枚举类型中。方法中另有指定的情况下,默认值是列表中的第一个值方法
节的定义。
(可选)自定义数据类型方法
部分。section可以包含以下方法:
getDefaultValue
指定允许值列表中第一个以外的默认枚举值。
getDescription
所生成的代码的数据类型的描述万博1manbetx®编码器™.
getHeaderFile
所生成的代码中包含枚举类型定义的自定义头文件万博1manbetx仿真软件编码器.
getDataScope
在生成的代码中的头文件中启用从头文件导出或导入枚举类型定义万博1manbetx仿真软件编码器.
addClassNameToEnumNames
增强可读性,并防止在生成的代码中与标识符的名称冲突万博1manbetx仿真软件编码器.
例如,这个MATLAB文件提供了枚举数据类型的自定义定义BasicColors
:
指定默认枚举值是允许值列表中的最后一个。
所生成的代码的数据类型的简短说明万博1manbetx仿真软件编码器.
从自定义头文件导入数据类型的定义以防止万博1manbetx仿真软件编码器从生成定义开始。
在生成的代码中,将数据类型的名称作为前缀添加到每个枚举成员名万博1manbetx仿真软件编码器.
classdefBasicColors < 万博1manbetxSimulink。IntEnumType枚举红(0)黄(1)绿(2)结束方法(静态= true)函数getDefaultValue()GETDEFAULTVALUE默认枚举成员。返回此枚举类的有效成员以指定默认值。如果您没有定义此方法,Simulink将使用第一个成员。万博1manbetxretVal = BasicColors.Green;结束函数retVal = getDescription()用于描述该枚举类型的字符串。retVal ='这定义了颜色的枚举类型';结束函数gettheaderfile ()GETHEADERFILE在生成的代码中定义此类型的文件。getDataScope方法决定指定文件的重要性。retVal =“imported_enum_type.h”;结束函数retVal = getdataset ()GETDATASCOPE生成的代码是否导入或导出该类型。返回下列字符串之一:% 'Auto':在model_types.h中定义类型,如果头文件指定,则导入% 'Exported':在生成头文件中定义类型% 'Imported':从指定头文件导入类型定义如果您没有定义此方法,DataScope默认为'Auto'。retVal =“进口”;结束函数retVal = addClassNameToEnumNames()% ADDCLASSNAMETOENUMNAMES是否添加类名%作为生成代码中枚举成员名的前缀。返回true或false。如果不定义此方法,则不添加前缀。retVal = true;结束%的功能结束%的方法结束% classdef
将文件保存在MATLAB路径下。文件的名称必须与数据类型的名称完全匹配。例如,数据类型的定义BasicColors
必须驻留在一个名为BasicColors.m
.
要将文件夹添加到MATLAB搜索路径,请键入目录
在命令提示符处。路径名
将枚举数据添加到图表时,请在“属性检查器”中指定其类型。
在类型字段中,选择Enum: <类名>
.
取代<类名>
数据类型的名称。例如,输入枚举:BasicColors
在类型字段。
(可选)使用前缀标识符为枚举数据输入初始值。初始值必须计算为有效的MATLAB表达式。