Этот пример показывает, как задать атрибуты свойства.
Атрибуты свойства, которые добавляют детали к свойству, обеспечивают уровень управления к вашим свойствам. В дополнение к атрибутам свойства MATLAB® Системные объекты могут использовать эти три дополнительных атрибута: Nontunable
, Logical
и PositiveInteger
. Чтобы задать несколько атрибутов, разделите их запятыми.
Используйте атрибут Nontunable
для свойства, когда алгоритм зависит от значения, являющегося постоянным, если обработка данных запускается. Определение свойства как ненастраиваемое может повысить эффективность вашего алгоритма путем устранения необходимости проверить на или реагировать на значения то изменение. Для генерации кода, задавая свойство как ненастраиваемое позволяет памяти, сопоставленной с тем свойством быть оптимизированной. Необходимо задать все свойства, которые влияют на количество портов ввода или вывода как ненастраиваемое.
Пользователи Системы object™ могут только изменить ненастраиваемые свойства прежде, чем вызвать объект или после вызывания функции release
. В этом примере вы задаете свойство InitialValue
как ненастраиваемое и устанавливаете его значение к 0.
properties (Nontunable)
InitialValue = 0;
end
Логические свойства имеют значение true
или false
. Пользователи системного объекта могут ввести 1
или 0
или любое значение, которое может быть преобразовано в логическое. Значение, однако, отображается как true
или false
. Можно использовать разреженные логические значения, но они должны быть скалярными значениями. В этом примере свойство Increment
указывает, увеличить ли счетчик. По умолчанию Increment
является настраиваемым свойством. Следующие ограничения применяются к свойству с атрибутом Logical
,
Не может также быть Dependent
или PositiveInteger
Значением по умолчанию должен быть true
или false
. Вы не можете использовать 1
или 0
как значение по умолчанию.
properties (Logical)
Increment = true
end
В этом примере частная собственность MaxValue
ограничивается принять только действительные, положительные целые числа. Вы не можете использовать разреженные значения. Следующее ограничение применяется к свойству с атрибутом PositiveInteger
,
Не может также быть Dependent
или Logical
properties (PositiveInteger)
MaxValue
end
Если ваш алгоритм использует свойства, что состояние удержания, можно присвоить те свойства атрибут DiscreteState
. Свойства с этим атрибутом отображают свои значения состояния через getDiscreteStateImpl
, когда пользователи вызывают getDiscreteState
. Следующие ограничения применяются к свойству с атрибутом DiscreteState
,
Числовое, логическое, или fi значение, но не масштабированное двойное fi значение
Не имеет ни одного из этих атрибутов: Nontunable
, Dependent
, Abstract
, Constant
.
Никакое значение по умолчанию
Не публично устанавливаемый
GetAccess = Public
по умолчанию
Набор значений только через setupImpl
, когда Системный объект называется. (См. Сводные данные Последовательности Вызова),
В этом примере вы задаете свойство Count
как дискретное состояние:
properties (DiscreteState)
Count;
end
classdef Counter < matlab.System % Counter Increment a counter to a maximum value % These properties are nontunable. They cannot be changed % after the setup method has been called or while the % object is running. properties (Nontunable) % The initial value of the counter InitialValue = 0 end properties (Nontunable, PositiveInteger) % The maximum value of the counter MaxValue = 3 end properties (Logical) % Whether to increment the counter Increment = true end properties (DiscreteState) % Count state variable Count end methods (Access = protected) % Increment the counter and return its value % as an output function c = stepImpl(obj) if obj.Increment && (obj.Count < obj.MaxValue) obj.Count = obj.Count + 1; else disp(['Max count, ' num2str(obj.MaxValue) ' ,reached']) end c = obj.Count; end % Setup the Count state variable function setupImpl(obj) obj.Count = 0; end % Reset the counter to one. function resetImpl(obj) obj.Count = obj.InitialValue; end end end