Когда это необходимо, чтобы создать Систему object™ свойство с ограниченным набором приемлемых значений, вы используете перечисления. Чтобы использовать перечисленные данные в Системном объекте в MATLAB® или Simulink®, вы обращаетесь к ним в вашем определении класса Системного объекта и задаете свой перечислимый класс в отдельном файле определения класса.
Для получения дополнительной информации о перечислениях, смотрите Перечисления.
Для Системного объекта, который используется в блоке MATLAB System в Simulink, смотрите Использование Перечислимые Данные в Моделях Simulink (Simulink).
Чтобы создать перечислимое свойство, вам нужно:
Набор свойств Системного объекта к классу перечисления.
Связанное определение класса перечисления, которое задает все возможные значения для свойства.
Перечисления могут также вывести от Simulink.IntEnumType. Вы используете этот тип перечисления, чтобы добавить атрибуты, такие как пользовательские заголовки, к вводу или выводу блока MATLAB System. Смотрите Использование Перечислимые Данные в Моделях Simulink (Simulink).
Этот пример задает цветное свойство перечисления для Системного объекта.
Определение класса перечисления ColorValues:
classdef ColorValues < int32 enumeration blue (0) red (1) green (2) end end
ColorValues наследовался int32 для совместимости генерации кода. Перечислимые величины должны быть допустимыми идентификаторами MATLAB.Свойство Системного объекта под названием Color и наборы значение по умолчанию к blue. (1,1) задает размер свойства Color:
properties
Color (1, 1) ColorValues = ColorValues.blue
end
Этот пример показывает определение класса Системного объекта Whiteboard и как использовать объект. Каждый раз, когда вы запускаете объект электронной доски, он чертит линию на электронной доске.
Определение Системного объекта Whiteboard
type('Whiteboard.m');classdef Whiteboard < matlab.System
% Whiteboard Draw lines on a figure window
%
properties(Nontunable)
Color (1, 1) ColorValues = ColorValues.blue
end
methods (Access = protected)
function stepImpl(obj)
h = Whiteboard.getWhiteboard();
plot(h, ...
randn([2,1]), randn([2,1]), ...
'Color',char(obj.Color));
end
function releaseImpl(obj)
cla(Whiteboard.getWhiteboard());
hold on
end
end
methods (Static)
function a = getWhiteboard()
h = findobj('tag','whiteboard');
if isempty(h)
h = figure('tag','whiteboard');
hold on
end
a = gca;
end
end
end
Создайте Системный объект.
greenInk = Whiteboard; blueInk = Whiteboard;
Измените цвет.
greenInk.Color = 'green'; blueInk.Color = 'blue';
Проведите несколько линий.
for i=1:3 greenInk(); blueInk(); end

Очистите электронную доску
release(greenInk); release(blueInk);
