Задание объектов с конечным источником

В этом примере показано, как задать Систему object™, который выполняет определенное количество шагов или определенное количество чтений из файла.

Используйте FiniteSource Класс и задает конец источника

  1. Разделите на подклассы от конечного исходного класса.

     classdef RunTwice < matlab.System & ...
        matlab.system.mixin.FiniteSource
    
  2. Задайте конец источника с isDoneImpl метод. В этом примере источник имеет две итерации.

     methods (Access = protected)
       function bDone = isDoneImpl(obj)
          bDone = obj.NumSteps==2
       end
    

Полный файл определения класса с конечным источником

classdef RunTwice < matlab.System & ...
    matlab.system.mixin.FiniteSource
  % RunTwice System object that runs exactly two times
  %  
  properties (Access = private)
    NumSteps
  end
  
  methods (Access = protected)
    function resetImpl(obj)
      obj.NumSteps = 0;
    end

    function y = stepImpl(obj)
      if ~obj.isDone()
        obj.NumSteps = obj.NumSteps + 1;
        y = obj.NumSteps;
      else
        y = 0;
      end
    end

    function bDone = isDoneImpl(obj)
      bDone = obj.NumSteps==2;
    end
  end
end

Смотрите также

Похожие темы