主要内容

定义枚举数据类型

增强状态流的可读性®图表,使用枚举数据。使用枚举数据,您可以:

  • 创建一个受限制的值集,并通过名称引用这些值。

  • 将相关值分组为单独的数据类型。

  • 避免定义一长串常量。

在Simulink中,状态流图支持枚举金宝app数据金宝app®模型。有关更多信息,请参见通过使用枚举数据按名称引用值

在将枚举数据添加到状态流图之前,必须在MATLAB中定义枚举数据类型®类定义文件。为每种枚举类型创建不同的文件。

枚举数据类型定义的元素

枚举数据类型定义由三段代码组成。

部分的代码 需要吗? 目的
classdef

是的

提供枚举数据类型的名称

枚举

是的

列出数据类型允许的枚举值

方法

没有

提供自定义数据类型的方法

定义枚举数据类型

  1. 打开一个用于存储数据类型定义的新文件。从首页选项卡,选择>

  2. 完成classdef定义部分。

    classdefBasicColors <仿金宝app真软件。IntEnumType...结束

    classdef节定义具有名称的枚举数据类型BasicColors.statflow从内置类型派生数据类型金宝app仿真软件。IntEnumType.枚举的数据类型名称在数据类型名称和工作区变量名称中必须是唯一的。

  3. 函数中定义枚举值枚举部分。

    classdefBasicColors <仿金宝app真软件。IntEnumType枚举红(0)黄(1)绿(2)结束结束

    枚举类型可以定义任意数量的值。的枚举节列出该数据类型允许的枚举值集。每个枚举值由一个名称和一个基础整数值组成。每个名称在其类型中必须是唯一的,但也可以出现在其他枚举类型中。默认值是列表中的第一个值,除非您在方法定义部分。

  4. (可选)自定义数据类型方法部分。section可以包含以下方法:

    • getDefaultValue指定允许值列表中的第一个以外的默认枚举值。

    • getDescription方法生成的代码的数据类型说明金宝app仿真软件编码器™

    • getHeaderFile由生成的代码中包含枚举类型定义的自定义头文件金宝app仿真软件编码器

    • getDataScope通过生成的代码从头文件中导出或导入枚举类型定义金宝app仿真软件编码器

    • addClassNameToEnumNames增强可读性并防止代码中与标识符的名称冲突金宝app仿真软件编码器

    例如,这个MATLAB文件提供了枚举数据类型的自定义定义BasicColors:

    • 指定默认枚举值是允许值列表中的最后一个。

    • 由生成的代码的数据类型的简短描述金宝app仿真软件编码器

    • 从自定义头文件导入数据类型定义以防止金宝app仿真软件编码器从生成定义。

    • 将数据类型的名称作为前缀添加到生成的代码中的每个枚举成员名金宝app仿真软件编码器

    classdefBasicColors <仿金宝app真软件。IntEnumType枚举红(0)黄(1)绿(2)结束方法(静态= true)函数retVal = getDefaultValue ()% GETDEFAULTVALUE默认枚举成员。返回此枚举类的有效成员以指定默认值。%如果你没有定义这个方法,Simulink会使用第一个成员。金宝appretVal = BasicColors.Green;结束函数retVal = getDescription ()% GETDESCRIPTION描述该枚举类型的字符串。retVal =这定义了颜色的枚举类型结束函数retVal = getHeaderFile ()% GETHEADERFILE生成代码中定义此类型的文件。方法getDataScope确定指定文件的重要性。retVal =“imported_enum_type.h”结束函数retVal = getDataScope ()% GETDATASCOPE生成的代码是导入还是导出此类型。%返回以下字符串之一:% 'Auto':在model_type .h中定义类型,如果指定了头文件则导入% 'Exported':在生成的头文件中定义类型% 'Imported':从指定的头文件导入类型定义%如果未定义此方法,默认情况下DataScope为“Auto”。retVal =“进口”结束函数retVal = addClassNameToEnumNames ()% ADDCLASSNAMETOENUMNAMES是否添加类名%作为生成代码中枚举成员名的前缀。%返回true或false。%如果未定义此方法,则不添加前缀。retVal = true;结束%的功能结束%的方法结束% classdef

  5. 在MATLAB路径上保存文件。文件的名称必须与数据类型的名称完全匹配。例如,数据类型的定义BasicColors必须驻留在名为BasicColors.m

    提示

    要将文件夹添加到MATLAB搜索路径,输入目录路径名在命令提示符处。

在属性检查器中指定数据类型

将枚举数据添加到图表时,请在属性检查器中指定其类型。

  1. 类型字段中,选择枚举:<类名>

  2. 取代<类名>使用数据类型的名称。例如,输入枚举:BasicColors类型字段。

  3. (可选)通过前缀标识符输入枚举数据的初始值。初始值必须计算为有效的MATLAB表达式。有关前缀标识符和非前缀标识符的更多信息,请参见枚举值的表示法

相关的话题