Main Content

定义有限源对象

此示例说明如何定义一个从文件执行特定步数或特定读取次数的 System 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

另请参阅

相关主题