Main Content

setupImpl

クラス: matlab.System

System object の初期化

構文

setupImpl(obj)
setupImpl(obj,input1,input2,...)

説明

setupImpl(obj) は 1 回だけのタスクを実装します。

setupImpl(obj,input1,input2,...) は 1 つ以上の stepImpl 入力仕様を使用して System object™ を設定します。

実行時の詳細

setupImplsetup メソッドを使って呼び出されます。ユーザーが setup メソッドを直接呼び出すことはありません。しかし、setup は、System object が最初に実行されたときと System object が解放された後に呼び出されます。詳細については、詳細な呼び出しシーケンスを参照してください。

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

  • System object でセットアップ タスクが不要な場合は、クラス定義ファイルからこのメソッドを省くことができます。

  • setupImpl を使用してプライベート プロパティを設定すると、stepImpl メソッドが呼び出されるたびにこれらを計算する必要がありません。

  • System object のリソースを取得するには、コンストラクターではなく setupImpl を使用しなければなりません。

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

  • setupImpl を使用して状態の初期化またはリセットをしないでください。状態に対しては resetImpl メソッドを使用します。

  • System object が Simulink® MATLAB System (Simulink) ブロックで使用される場合、調整可能なプロパティを setupImpl メソッド内で変更することはできません。

  • setupImpl メソッドは入力値の設定に使用しないでください。

  • setupImpl には検証を含めないでください。プロパティや入力を検証するには、validatePropertiesImplvalidateInputsImpl、または setProperties メソッドを使用します。

  • MATLAB System (Simulink) ブロックを使用して Simulink で System object を使用する場合は、このメソッドで System object の入力値を使用しないでください。仕様の入力 (つまり、データ型、複雑度、およびサイズ) のみをクエリできます。

入力引数

すべて展開する

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

System object への入力をリストします。入力の順序は、stepImpl メソッドで定義された入力の順序と一致しなければなりません。stepImpl は入力を setupImpl に渡して、サイズやデータ型などの仕様を 1 回限りの計算で使用します。

すべて展開する

この例では、クラス定義ファイルで setupImpl メソッドを使用して書き込み用にファイルを開く方法を示します。

methods (Access = protected)
   function setupImpl(obj)
      obj.pFileID = fopen(obj.Filename,'wb');
      if obj.pFileID < 0
         error('Opening the file failed');
       end
   end
end

Filename は、System object の調整不可能なプロパティとして定義する必要があります。

properties (Nontunable)
   Filename = "default.bin"
end

この例では setupImpl を使用して、オブジェクトの実行により入力のプロパティを初期化するように指定する方法を示します。この場合は、入力 u を含み、オブジェクトを実行する呼び出しによって、オブジェクトの状態をサイズ u の行列に初期化します。

methods (Access = protected)
   function setupImpl(obj, u) 
    obj.State = zeros(size(u),'like', u); 
  end 
end

バージョン履歴

R2011b で導入