Main Content

getOutputSizeImpl

構文

[sz_1,sz_2,...,sz_n] = getOutputSizeImpl(obj)

説明

[sz_1,sz_2,...,sz_n] = getOutputSizeImpl(obj) は、各出力端子のサイズを返します。出力数は、getNumOutputs メソッドから返される値または stepImpl メソッドでリストされる出力引数の数と一致しなければなりません。

System object™ に 1 つの入力と 1 つの出力があり、入力と出力のサイズを同じにする場合、このメソッドを実装する必要はありません。この場合、getOutputSizeImpl は入力と出力のサイズが同じであると想定し、入力のサイズを返します。MATLAB® の可変サイズの入力の場合、オブジェクトを実行するたびにサイズが変化します。Simulink® の可変サイズの入力の場合、出力サイズは最大入力サイズになります。

以下の場合に、出力サイズを定義するには getOutputSizeImpl メソッドを実装しなければなりません。

  • System object の入力または出力が 1 つを超えてある場合

  • 出力サイズと入力サイズが異なるようにする必要がある。

    また、出力サイズが入力サイズと異なる場合は、propagatedInputSize メソッドも使用しなければなりません。

Simulink の既定では、MATLAB System ブロックは 1 次元の入力信号を 2 次元として認識し、1 次元の出力信号を 2 次元として伝播します。1 次元の入力と出力がそれぞれ 1 次元信号として認識されて伝播されるようにするには、supports1DVectorsImpl メソッドを使用します。

実行時の詳細

Simulink モデルのコンパイル中および伝播中、MATLAB System ブロックは getOutputSizeImpl メソッドを呼び出して出力サイズを決定します。

既定の設定では、すべての入力は可変サイズになります。これらの入力について、出力サイズは最大入力サイズになります。

メソッドのオーサリングのヒント

  • このメソッドでは Access = protected と設定しなければなりません。

  • このメソッドでは、プロパティを変更することはできません。

入力引数

すべて展開する

オブジェクト固有のプロパティ、状態、およびメソッドへのアクセスに使用される System object ハンドル。getOutputSizeImpl メソッドがこのオブジェクトを使用しない場合、この入力を ~ で置き換えることができます。

出力引数

すべて展開する

各出力端子のサイズを含むベクトル。

すべて展開する

クラス定義ファイルで、System object 出力のサイズを指定します。

methods (Access = protected)
   function sz_1 = getOutputSizeImpl(obj)
      sz_1 = [1 1];
   end 
end

クラス定義ファイルで、System object の複数の出力のサイズを指定します。

methods (Access = protected)
   function [sz_1,sz_2] = getOutputSizeImpl(obj) 
      sz_1 = propagatedInputSize(obj,1); 
      sz_2 = [1 1]; 
   end
 end 

System object 出力のサイズが伝播された入力サイズによって異なる場合、これをクラス定義ファイルで指定します。

methods (Access = protected)
   function varargout = getOutputSizeImpl(obj) 
      varargout{1} = propagatedInputSize(obj,1); 
      if obj.HasSecondOutput
         varargout{2} = [1 1];
      end
   end
end 

バージョン履歴

R2013b で導入