Определение Атрибутов свойств

Property attributes, которые добавляют детали в свойство, обеспечивает слой управления к вашим свойствам. В дополнение к MATLAB® атрибуты свойства и валидация свойства, Системные объекты могут использовать Nontunable или DiscreteState. Чтобы задать несколько атрибутов, разделите их запятыми.

Определение свойства как ненастраиваемого

По умолчанию все свойства являются настраиваемыми, означая, что значение свойства может измениться в любое время.

Используйте Nontunable припишите для свойства, когда алгоритм зависит от значения, являющегося постоянным, если обработка данных запускается. Определение свойства как ненастраиваемое может повысить эффективность вашего алгоритма путем устранения необходимости проверять на или реагировать на значения то изменение. Для генерации кода, задавая свойство как ненастраиваемое позволяет памяти, сопоставленной с тем свойством быть оптимизированной. Необходимо задать все свойства, которые влияют на количество портов ввода или вывода как ненастраиваемое.

Когда вы используете Систему object™, можно только изменить ненастраиваемые свойства прежде, чем вызвать объект или после вызова release функция. Например, вы задаете InitialValue свойство как ненастраиваемое и установленное его значение к 0.

properties (Nontunable)
   InitialValue = 0;
end

Определение свойства как DiscreteState

Если ваш алгоритм использует свойства, что состояние удержания, можно присвоить те свойства DiscreteState атрибут. Свойства с этим атрибутом отображают свои значения состояния через getDiscreteStateImpl когда пользователи вызывают getDiscreteState. Следующие ограничения применяются к свойству с DiscreteState припишите,

  • Числовое, логическое, или fi значение, но не масштабированное двойное fi значение

  • Не имеет ни одного из этих атрибутов: Nontunable, Dependent, Abstract, Constant.

  • Никакое значение по умолчанию

  • Не публично устанавливаемый

  • GetAccess = Public по умолчанию

  • Если вы задаете свойство как дискретное состояние, вы не должны вручную сохранять или перезаписывать объект с помощью saveObjectImpl или loadObjectImpl.

Например, вы задаете 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

Похожие темы