Этот пример показывает, как задать Систему object™, который выполняет определенное количество шагов или определенное количество чтений из файла.
Использование класса FiniteSource и определение конца источника
Разделите на подклассы от конечного исходного класса.
classdef RunTwice < matlab.System & ... matlab.system.mixin.FiniteSource
Задайте конец источника с методом 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
matlab.system.mixin. FiniteSource