枚举成员是枚举类的实例。您可以将枚举成员分配给变量和枚举成员数组。如果枚举类从超类中派生,则可以替换枚举成员以获取超类的实例。
这平日
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 =平日
使用枚举阵列使用平日
类构造函数和单元格数组char
vectors。
WD =平日({'周一'那'Wednesday'那'星期五'})
WD =星期三星期五星期五
班级(WD)
ans =平日
Allchar
单元阵列中的向量必须对应于类定义的枚举成员。
char
to Enumerations马铃薯草coerceschar
向量s into enumeration members when the dominant argument is an enumeration. Because user-defined classes are dominant over thechar
class, 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 =平日
char
vectors.您可以使用枚举成员代替char
在功能需要的情况下向量char
vectors。例如,此呼叫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;
char
vectors.您可以连接枚举成员和char
vectors只要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