Как я могу отобразить значение перечисления в объекте MATLAB
Учитывая следующие два класса
classdef EnumClass
enumeration
enumVal1
enumVal2
end
end
classdef EnumDisplay
properties
enumValue = EnumClass.enumVal1
numberValue = 1
end
end
При отображенииEnumClass
, значение отображается:
>> E = EnumClass.enumVal1
E =
enumVal1
но при отображенииEnumDisplay
в командном окне значение перечисления подавляется, и отображаются только размер и класс массива.
>> C = EnumDisplay()
C =
EnumDisplay with properties:
enumValue: [1x1 EnumClass]
numberValue: 1
Что является самым простым способом отображения значения перечисления в списке свойств класса. То есть Существует ли простой и общий способ отображения класса следующим образом:
>> C = EnumDisplay()
C =
EnumDisplay with properties:
enumValue: enumVal1
numberValue: 1
Я подозреваю, что это как-то связано с наследованием отmatlab.mixin.CustomDisplay
где-то класс, но я хочу, чтобы это было как можно более общим, чтобы ограничить количество кодирования, которое мне нужно сделать для каждого класса перечисления и / или каждого класса, который имеет значение перечисления в свойстве.
Мне удалось найти частичное решение этой проблемы, но оно не совсем удовлетворительное.
classdef EnumDisplay < matlab.mixin.CustomDisplay
properties
enumValue = EnumClass.enumVal1
numberValue = 1
end
methods (Access = protected)
function groups = getPropertyGroups(This)
groups = [email protected](This);
groups.PropertyList.enumValue = char(This.enumValue);
end
end
end
Теперь дисплей выглядит так:
>> C = EnumDisplay()
C =
EnumDisplay with properties:
enumValue: 'enumVal1'
numberValue: 1
Это почти там, но не совсем. Я не хочу, чтобы перечисленное значение было в кавычках.