Main Content

有限ソース オブジェクトの定義

この例では、特定数のステップ、すなわちファイルから特定回数の読み取りを実行する System object™ の定義方法を示します。

FiniteSource クラスの使用とソースの終わりの指定

  1. 有限ソース クラスからのサブクラス化を行います。

     classdef RunTwice < matlab.System & ...
        matlab.system.mixin.FiniteSource
    
  2. isDoneImpl メソッドでソースの終わりを指定します。この例では、ソースには 2 回の反復があります。

     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

参考

関連するトピック