How to get name of an enumeration in MATLAB
enums, matlab, oop
Solution
You can use:
» str = char(Color.RED)
str =
RED
» class(str)
ans =
char
You can even override the default behaviour:
classdef(Enumeration) Color < int32
enumeration
RED(0)
GREEN(1)
BLUE(2)
end
methods
function s = char(obj)
s = ['Color ' num2str(obj)];
%# or use a switch statement..
end
function disp(obj)
disp( char(obj) )
end
end
end
and now:
» char(Color.BLUE)
ans =
Color 2
Problem
I define an enumerated type in MATLAB ``` classdef(Enumeration) Color < Simulink.IntEnumType enumeration RED(0), GREEN(1), BLUE(2), end end ``` I can assign it: ``` >> x = Color.RED x = RED ``` I can display it like this: ``` >> disp(x) RED ``` or like this ``` >> x.display() x = RED ``` How can I get access to that name ("RED") as a string? In other words I'm lookin for something like: ``` s = x.toString() ``` or ``` s = tostring(x) ``` both of which do not work.