要将枚举转换为字符数组很简单 - 只需调用char
。
char(myenum.somevalue)
返回'somevalue'
。
如何再次转换?我期待像char2enum
其中
char2enum('somevalue', 'myenum')
返回myenum.somevalue
。
是否有内置函数或者我必须创建自己的函数吗?
答案 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