exponenta event banner

Определение конечных исходных объектов

В этом примере показано, как определить системный 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

См. также

Связанные темы