如何将字符串转换为枚举?

时间:2010-12-22 16:05:12

标签: matlab enums

要将枚举转换为字符数组很简单 - 只需调用char

char(myenum.somevalue)

返回'somevalue'

如何再次转换?我期待像char2enum其中

这样的东西
char2enum('somevalue', 'myenum')

返回myenum.somevalue

是否有内置函数或者我必须创建自己的函数吗?

2 个答案:

答案 0 :(得分:5)

从角色创建枚举也相当简单:只需创建枚举:

out = myenum.somevalue

返回课程myenum和值somevalue

如果您的字符串在变量中,请调用

someVariable = somevalue;
out = myenum.(someVariable)

答案 1 :(得分:4)

您可以使用MATLAB动态参考功能通过名称作为字符串而不是其符号名称来访问枚举。例如,给定一个类Weekdays

classdef Weekdays
   enumeration
    Monday, Tuesday, Wednesday, Thursday, Friday
   end
end

您可以通过以下几种方式访问​​Friday类型:

>> Weekdays.Friday  % Access symbolically

>> Weekdays.('Friday') % Access as a string

如果你有一个字符串变量,其名称也适用于该类:

>> day = 'Friday'
>> Weekdays.(day)

BTW,此功能适用于MATLAB类方法,属性和事件,以及结构域。

http://www.mathworks.com/help/matlab/matlab_prog/bsgigzp-1.html#bsgigzp-33