主要内容

枚举操作

操作支持的枚举金宝app

您可以使用逻辑,设置会员,对枚举字符串比较操作。这些操作也支持在条件语句中使用枚举,例如金宝app开关如果语句。的字符串字符功能使您能够和枚举成员转换为字符串字符向量。

示例枚举类

这一主题使用工作日在枚举类来说明如何执行操作。的工作日类定义,枚举成员的日子。

classdef工作日枚举星期一、星期二、星期三、星期四、星期五结束结束

定义枚举类型的信息,请参阅定义枚举类

默认的方法

枚举类默认有以下方法:

方法(“工作日”)
方法类工作日:工作日char相交ne setxor strcmpi strncmp联盟cellstr eq ismember setdiff strncmpi比较字符串字符串

工作日方法将文本格式转换为枚举。金宝app支持的格式包括字符串、字符向量,字符串数组和细胞阵列字符向量。例如:

f =工作日([“周一”“星期五”])
周一到周五f = 1×2工作日枚举数组

枚举成员转换为字符串或字符向量

枚举成员转换成字符串字符向量是用于创建文本包含枚举成员的名字。例如,使用字符串函数将一个字符串枚举成员,包括它在一个句子:

字符串(WeekDays.Monday) +“是我们见面的一天。”
周一ans = "是我们的会议的一天。”

使用字符函数以类似的方式:

(“今天”char (WeekDays.Friday)“。”]
ans = '今天是星期五。”

枚举数组转换为字符串数组或单元数组字符向量

使用字符串函数枚举数组转换成一个字符串数组:

sa) =(工作日。周二WeekDays.Thursday];字符串(sa)
ans = 1×2字符串数组“周二”“星期四”

使用cellstr将数组单元阵列的枚举字符向量。

ca = cellstr(工作日。周二工作日。Thursday]); class(ca)
ans =“细胞”

两种细胞的细胞包含数组字符向量:

类((ca {1:2}))
ans = '字符'

关系操作和枚举、字符串和字符向量

你可以比较与枚举实例字符向量使用关系运算符和字符串情商(= =),(~ =),以及isequal方法。

关系运算符情商

使用情商比较枚举成员与文本值。例如,您可以比较一个枚举成员和一个字符串:

今天= WeekDays.Friday;今天= =“星期五”
ans =逻辑1

比较数组枚举字符向量。返回值是一个逻辑数组表示此枚举成员的数组是等价的字符向量:

wd =[工作日。周一工作日。周三工作日。Friday]; wd ==“星期五”
ans = 1×3逻辑数组0 0 1

下面的例子使用了函数比较对应的枚举元素数组和字符串数组的长度:

sa) = (“周一”“星期三”“星期五”];md =[工作日。周二工作日。周四WeekDays.Friday];md ~ = sa
ans = 1×3逻辑数组1 1 0

字符向量周三= (= =)枚举成员WeekDays.Wednesday。你可以在条件语句中使用这种平等:

今天=“星期三”;如果今天= =工作日。周三disp (“团队会议下午2”)结束

isequal方法

isequal方法也可以对比和字符串枚举实例,特征向量,字符串数组,和细胞特征向量的数组。

一个= WeekDays.Monday;isequal (,“周一”)
ans =逻辑1

当比较数组枚举到单个项目,的行为isequal略有不同情商。的isequal方法需要比较两个值是一样的大小。因此,isequal比较数组枚举时返回false字符向量或字符串标量,即使文本匹配数组枚举成员之一。

wd =[工作日。周一工作日。周三工作日。Friday]; isequal(wd,“星期五”)
ans =逻辑0

枚举的开关语句

平等(情商和不平等)功能使您能够使用枚举成员开关语句。例如,使用工作日枚举定义之前,构造一个switch语句:

函数c =提醒(天)%添加错误检查开关(天)情况下工作日。周一c =“没有会议”;情况下工作日。周二c =部门会议10点的;情况下{工作日。周三工作日。周五}c =“团队会议下午2”;情况下工作日。周四c =“排球之夜”;结束结束

通过的一员工作日枚举类的提醒功能:

今天= WeekDays.Wednesday;提醒(今天)
在两点ans =团队会议

有关更多信息,请参见在条件语句对象

替换字符串或字符向量

您可以使用字符串或字符向量来代表特定枚举成员:

函数c = Reminder2(天)开关(天)情况下“周一”c =部门会议10点的;情况下“星期二”c =会议免费天!”;情况下{“星期三”“星期五”}c =“团队会议下午2”;情况下“星期四”c =“排球之夜”;结束结束

虽然您可以使用字符向量或字符串,而不是显式地指定枚举,MATLAB®必须将文本格式转换为枚举。消除对这种转换的需求如果不是必要的。

枚举集会员

枚举类提供的方法来确定集员。

  • ismember——适用于枚举元素数组如果在一组

  • setdiff——为枚举阵列设置不同

  • 相交——设置交叉枚举数组

  • setxor——设置异枚举数组

  • 联盟——设置枚举联盟数组

确定今天是会议的一天为你的团队。枚举成员创建一组对应的天团队会议。

今天= WeekDays.Tuesday;teamMeetings =[工作日。周三工作日。Friday];

使用ismember来确定今天的一部分teamMeetings设置:

teamMeetings ismember(今天)
ans = 0

混合的枚举和文本集

如果你通过枚举成员和文本值枚举类方法,类试图将文本值转换为枚举的类。

确定字符向量“星期五”是一个数组枚举的成员。

teamMeetings =[工作日。周三工作日。Friday]; ismember(“星期五”teamMeetings)
ans =逻辑1

确定如果枚举成员是一个字符串数组的成员。

ismember (WeekDays.Friday [“星期三”“星期五”])
ans =逻辑1

枚举文字比较方法

枚举类提供的方法来比较枚举成员和文本。一个参数必须是一个字符串比较方法字符向量或一个字符串。比较两个枚举成员的回报

  • 比较字符串——比较枚举成员

  • strncmp——比较枚举成员的前n个字符

  • strcmpi枚举成员,不分大小写比较

  • strncmpi——不分大小写枚举成员的第n个字符比较

比较字符串或枚举成员字符向量

字符串比较的方法可以比较枚举成员字符向量和字符串。

今天= WeekDays.Tuesday;比较字符串(今天,“星期五”)
ans = 0
比较字符串(今天,“星期二”)
ans = 1

枚举的得到信息

获得使用枚举类的信息枚举函数。例如:

枚举工作日
枚举成员的类“工作日”:周一周二周三周四周五

更多信息与枚举类自省是如何工作的,看到的元类EnumeratedValues财产

测试枚举

确定如果一个枚举值,使用isenum函数。例如:

今天= WeekDays.Wednesday;isenum(今天)
ans = 1

isenum返回真正的空枚举对象:

noday = WeekDays.empty;isenum (noday)
ans = 1

来确定一个类是一个枚举类,使用meta.class对象。

今天= WeekDays.Wednesday;mc =元类(今天);mc.Enumeration
ans = 1

相关的话题