Атрибуты свойств, которые добавляют сведения к свойству, обеспечивают слой управления для свойств. В дополнение к атрибутам свойств MATLAB ® и проверке свойств, системные объекты могут использоватьNontunable или DiscreteState. Чтобы задать несколько атрибутов, разделите их запятыми.
По умолчанию все свойства настраиваются, что означает, что значение свойства может изменяться в любое время.
Используйте Nontunable атрибут для свойства, когда алгоритм зависит от значения, которое является постоянным после начала обработки данных. Определение свойства как неперестраиваемого может повысить эффективность алгоритма, устранив необходимость проверки или реагирования на изменяющиеся значения. При создании кода определение свойства как неперестраиваемого позволяет оптимизировать память, связанную с этим свойством. Необходимо определить все свойства, влияющие на количество входных или выходных портов, как неперестраиваемые.
При использовании системного object™ можно изменить неперестраиваемые свойства только перед вызовом объекта или после вызова release функция. Например, определяется InitialValue как не настраиваемое и установите для него значение 0.
properties (Nontunable)
InitialValue = 0;
end
Если алгоритм использует свойства, удерживающие состояние, можно назначить эти свойства DiscreteState атрибут. Свойства с этим атрибутом отображают свои значения состояния через getDiscreteStateImpl когда пользователи звонят getDiscreteState. Следующие ограничения применяются к свойству с DiscreteState атрибут,
Числовое, логическое или значение fi, но не масштабированное двойное значение fi
Не имеет следующих атрибутов: Nontunable, Dependent, Abstract, Constant.
Нет значения по умолчанию
Не поддается публичному урегулированию
GetAccess = Public по умолчанию
Значение устанавливается только через setupImpl при вызове объекта System. (См. раздел Сводка последовательности вызовов)
Например, определяется Count свойство как дискретное состояние:
properties (DiscreteState)
Count;
end
В этом примере показаны два неперестраиваемых свойства, дискретное свойство состояния, а также проверка свойства класса MATLAB для установки атрибутов свойства.
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 % The maximum value of the counter, must be a positive integer scalar MaxValue (1, 1) {mustBePositive, mustBeInteger} = 3 end properties % Whether to increment the counter, must be a logical scalar Increment (1, 1) logical = 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