What command can I issue to list my custom enumerations which are currently residing in Matlab?

17 次查看(过去 30 天)
I have an M-File containing the definitions listed below. I run this M-File so that the enumeration definitions become available to Simulink.
Simulink.defineIntEnumType('engine_state_T', ...
{'ENGINE_IN_STOP','ENGINE_IN_CRANK','ENGINE_IN_STALL', 'ENGINE_IN_RUN', 'ENGINE_IN_AUTOSTOP'}, ...
[0,1,2,3,4])
Simulink.defineIntEnumType('vehicle_state_T', ...
{'VEHICLE_IN_STOP','VEHICLE_IN_CRANK','VEHICLE_IN_STALL'}, ...
[0,1,2])
I want to issue a command from within one of my scripts, much like I do for getting the workspace objects ('who'), so that I can get a list of these enumerations. My script knows nothing about this M-File and simply needs to find the enumeration names that are defined (engine_state_T, vehicle_state_T, etc.)

采纳的回答

goerk
goerk 2015-10-20
A little bit late, but maybe you are still looking for something. I use the following code to get an overview of the defined enumerations.
EnumClassSimulink = meta.class.fromName('Simulink.IntEnumType');
SimulinkClassList = EnumClassSimulink.getAllClasses;
nofClasses = length(SimulinkClassList);
for i=1:nofClasses
if SimulinkClassList{i}.Enumeration
disp(SimulinkClassList{i}.Name)
memberList = SimulinkClassList{i}.EnumerationMemberList;
for j = 1:length(memberList)
disp([ ' ' memberList(j).Name ]);
end
end
end

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 String 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by