Create enumeration instance by comparison to variable
1 次查看(过去 30 天)
显示 更早的评论
Can an instance of an enumeration class be created by comparison to a string or character of the same name as the enumeration? Can it be done by referencing its index in the enumeration list? I want to use the enumeration class to manage the execution of a sequence of functions. Below is my enumeration class (edited for privacy):
classdef types
properties
prop1
prop2
end
enumeration
type1 (1,0)
type2 (0,1)
type3 (1,1)
end
methods
function obj = types(p1,p2)
obj.prop1 = p1;
obj.prop2 = p2;
end
end
end
A function asks the user to select either a single type or a sequence of types. Here's some of the code:
function seq = sequence(choice)
list = enumeration('types');
if choice == 0
[ind,sel] = listdlg('PromptString',"Select a type.",...
'SelectionMode','single','ListString',list);
if sel == 1
switch list(ind)
case types.type1
seq = types.type1;
case types.type2
seq = types.type2;
case types.type3
seq = types.type3;
end
else
seq = 0;
end
elseif choice == 1
% prompts to create sequence and assign enumeration member in a
% similar manner
end
end
Is there a more efficient way to assign the enumeration member to the 'seq' variable?
0 个评论
采纳的回答
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Enumerations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!