setup

Одноразовый набор задачи для Системных объектов

Описание

пример

setup(obj) выполняет одноразовые задачи настройки, характерные для Системы object™.

setup(obj,input1,...,inputN) выполняет одноразовые задачи настройки, когда те задачи настройки требуют, чтобы демонстрационные входные параметры подтвердили входные значения.

Примеры

Инициализируйте Встречный Системный объект

В этом примере показано, как вызвать setup на Системном объекте. В большинстве случаев вы не должны вызывать setup непосредственно, потому что setup инициализация происходит в первый раз, когда вы запускаете свой Системный объект. Вызовите setup прежде, чем запуститься, только если у вас есть опасения по поводу времени выполнения инициализации.

Создайте Системный объект Counter со значением запуска 5. (См. полное определение Counter в разделе ниже.)

count = Counter('StartValue',5)
count = 
  Counter with properties:

    UseIncrement: 1
    UseWrapValue: 1
      StartValue: 5
       Increment: 1
       WrapValue: 10

В определении Counter объект, setupImpl инициализирует StartValue свойство с конкретным количеством, в котором можно начать рассчитывать. Когда вы вызываете setup, Системный объект вызывает setupImpl и также подтверждает входные значения и значения свойств. Поскольку Counter задал эти внутренние методы валидации, необходимо дать setup входное значение, чтобы подтвердить.

Инициализируйте StartValue для вашего count объект путем вызова setup с входным значением заполнителя. После инициализации, запуска объект.

setup(count,0)
count(2)
ans = 7

Полное определение Counter Системный объект

type Counter.m
classdef Counter < matlab.System
% COUNTER Compute an output value by incrementing the input value
  
  % All properties occur inside a properties declaration.
  % These properties have public access (the default)
  properties
    UseIncrement (1,1) logical = true    % Use custom increment value.
    UseWrapValue (1,1) logical = true    % Use max value.
    
    StartValue (1,1) {mustBeInteger,mustBePositive} = 1   % Value to start from.
    Increment (1,1) {mustBeInteger,mustBePositive} = 1    % What to add to Value every step.
    WrapValue (1,1) {mustBeInteger,mustBePositive} = 10   % Max value to wrap around.
  end

  properties(Access = protected)
      Value
  end

  methods
    % Constructor - Support name-value pair arguments when constructing object
    function obj = Counter(varargin)
        setProperties(obj,nargin,varargin{:})
    end

    function set.Increment(obj,val)
        if val >= 10
          error('The increment value must be less than 10');
        end
        obj.Increment = val;
    end
    
  end
  
  methods (Access = protected)
    % Validate the object properties  
    function validatePropertiesImpl(obj)
        if obj.UseIncrement && obj.UseWrapValue && ...
                (obj.WrapValue < obj.Increment)
          error('Wrap value must be greater than increment value');
        end
    end
    
    % Validate the inputs to the object
    function validateInputsImpl(~,x)
        if ~isnumeric(x)
          error('Input must be numeric');
        end
    end
    
    % Perform one-time calculations, such as computing constants
    function setupImpl(obj)
        obj.Value = obj.StartValue;
    end
  
    % Step
    function out = stepImpl(obj,in)
      if obj.UseIncrement
        % If using increment property, multiple the increment by the input.
        obj.Value = in*obj.Increment + obj.Value;
      else
         % If not using increment property, add the input.
        obj.Value = in + obj.Value;
      end
      if obj.UseWrapValue && obj.Value > obj.WrapValue
         % If UseWrapValue is true, wrap the value
         % if it is greater than the WrapValue.
         obj.Value = mod(obj.Value,obj.WrapValue);
      end
      out = obj.Value;
    end
  end
end

Входные параметры

свернуть все

Системный объект вы хотите настроить прежде, чем запустить Системный объект.

Альтернативная функциональность

Для большинства Системных объектов вы не должны вызывать setup. Когда вы вызываете Системный объект впервые, setup называется. (См. Сводные данные Последовательности Вызова.) Необходимо вызвать setup отдельно, только если необходимо уменьшать вычислительную загрузку инициализации.

Введен в R2010a