Main Content

请参阅枚举

枚举类的实例

枚举成员是枚举类的实例。您可以将枚举成员分配给变量和枚举成员数组。如果枚举类从超类中派生,则可以替换枚举成员以获取超类的实例。

平日class defines enumeration members for five days of the week.

Classdef.平日枚举Monday, Tuesday, Wednesday, Thursday, Friday结尾结尾

Create objects of the平日代表特定日子的课程。

today = WeekDays.Monday; tomorrow = WeekDays.Tuesday;

这variablestoday一种nd明天一种re objects of the平日班级。

PPM.类定义了三个枚举成员。每个成员具有从类超类导出的相关数值。

Classdef.ppm 枚举High (1000) Medium (100) Low (10)结尾结尾

将枚举成员分配给变量。

level = PPM.High;

When you substitute enumeration members for instances of the superclass, MATLAB®将枚举成员强制到超类。例如,将数值添加到枚举成员PPM.班级。

levelNew = level + 100
levelNew = 1100

这result is of class双倍的

谁是
Name Size Bytes Class Attributes level 1x1 108 PPM levelNew 1x1 8 double

您可以替换相应的枚举成员的超类值。例如,通过枚举类中定义的数字值之一PPMSwitch.功能。

functionPPMSwitch.(ppm)switchPPM.案子ppm.low disp.低的案子ppm.medium disp.中等的案子PPM.。High dispHigh结尾结尾
PPMSwitch(100)
中等的

您还可以直接使用枚举成员:

ppmswitch(ppm.medium)
中等的

有关操作的信息,可以在枚举类实例上执行,请参阅对枚举的操作

将字符转换为枚举

Enumeration classes can convertchar向枚举成员的载体char向量代表一个枚举成员定义的the class. This conversion enables you to pass a validchar矢量或细胞阵列char向量s when enumerations are expected.

用一个char矢量而不是直接引用枚举成员当您希望使用简单字符串指定枚举成员时。但是,指定枚举成员直接消除转换char枚举。

Enumeration classes provide a converter function using the constructor syntax.

今天=平日('周二');

因为char向量'周二'matches the enumeration member平日。Tuesday, 这平日char方法可以执行转换。

class(today)
ans =平日

使用枚举阵列使用平日类构造函数和单元格数组charvectors。

WD =平日({'周一''Wednesday''星期五'})
WD =星期三星期五星期五
班级(WD)
ans =平日

Allchar单元阵列中的向量必须对应于类定义的枚举成员。

Coercion ofcharto Enumerations

马铃薯草coerceschar向量s into enumeration members when the dominant argument is an enumeration. Because user-defined classes are dominant over thecharclass, MATLAB attempts to convert thechar向量到枚举类的成员。

创建一个枚举阵列。然后插入achar向量that represents an enumeration member into the array.

A = [Wearingdays.Mondayay,Wearingdays.Wednesday,平日。
一种= Monday Wednesday Friday

添加A.char向量到平日大批。

一种(end+1) ='周二'
星期三星期三星期二星期二

Matlab强迫了这一点char向量to a平日枚举成员。

班级(a)
ans =平日

替代枚举成员charvectors.

您可以使用枚举成员代替char在功能需要的情况下向量charvectors。例如,此呼叫Sprintf.expects achar矢量,被指定为%S.format specifier.

Sprintf.('Today is %s'那平日。Friday)
一种ns = Today is Friday

枚举类的自动转换为char在这种情况下,可以使用枚举成员使用枚举成员。

枚举阵列

Create enumeration arrays by:

  • 使用枚举成员使用[]

  • 使用索引分配将枚举成员分配给数组

创建一个枚举数组平日by concatenating enumeration members:

WD = [平日。周二,平日,平日,平日。];

创建一个枚举数组平日通过索引分配:

一种(1) = WeekDays.Tuesday; a(2) = WeekDays.Wednesday; a(3) = WeekDays.Friday;

混合枚举成员和charvectors.

您可以连接枚举成员和charvectors只要char矢量代表枚举成员。

clear一种一种= [WeekDays.Wednesday,'星期五'];班级(a)
ans =平日

您还可以分配一个char向量to an enumeration array:

clear一种a(1)= Wearingdays.a(2)='星期五'; class(a)
ans =平日

默认枚举成员

这default member of an enumeration class is the first enumeration member defined in the enumeration block. For the平日类,默认枚举成员是平日

Classdef.平日枚举Monday, Tuesday, Wednesday, Thursday, Friday结尾结尾

马铃薯草一种llows assignment to any element of an array, even if the array variable does not previously exist. To fill in unassigned array elements, MATLAB uses the default enumeration member.

例如,为数组的元素5分配值,一种

clear一种一个(5)= Weearddays。

MATLAB必须初始化数组元素的值a(1:4)使用默认枚举成员。分配给阵列的第五个元素的结果一种是:

一种
一种= Monday Monday Monday Monday Tuesday

Related Topics