exponenta event banner

установка

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

Описание

пример

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

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

Примеры

Инициализация системного объекта счетчика

В этом примере показан способ вызова setup на объекте System. В большинстве случаев нет необходимости звонить setup непосредственно потому, что setup инициализация выполняется при первом запуске объекта System. Звонить 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, вызов объекта System 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. При первом вызове объекта System setup вызывается. (См. раздел Сводка последовательности вызовов.) Вы должны позвонить setup отдельно, только если нужно уменьшить вычислительную нагрузку инициализации.

Представлен в R2010a