最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。
この例では、数値を 1 つずつインクリメントする基本的な System object™ の作成方法を示します。例で使用するクラス定義ファイルには、System object の定義に最低限必要な要素が含まれています。
MAT ファイルを作成して編集するか、MATLAB® エディターを使用して System object を作成することができます。この例では、MATLAB エディターの [新規作成] メニューの使用方法を説明します。
MATLAB の [エディター] タブで、[新規作成] 、 [System object] 、 [標準] の順に選択します。簡単な System object テンプレートが開きます。
matlab.System
からのオブジェクトをサブクラス化します。ファイルの最初の行で Untitled
を AddOne
に置き換えます。
classdef AddOne < matlab.System
System object は、1 つの matlab.System
基底クラスで構成され、1 つ以上の mixin クラスを含む場合があります。基底クラスと mixin クラスは、クラス定義ファイルの最初の行で指定します。
ファイルを AddOne.m
という名前で保存します。
stepImpl
メソッドには、オブジェクトを呼び出すときに実行するアルゴリズムが含まれています。このメソッドを定義して System
object が実行するアクションを含めます。
作成した標準の System
object で stepImpl
メソッドのテンプレートを検査します。
methods (Access = protected) function y = stepImpl(obj,u) % Implement algorithm. Calculate y as a function of input u and % discrete states. y = u; end end
stepImpl
メソッドは内部メソッドであり、直接の呼び出しや実行は行われないため、このメソッドのアクセスは常に protected
に設定します。
静的メソッドを除くすべてのメソッドでは、System
object のハンドルが最初の入力引数でなければなりません。MATLAB エディターによって挿入される既定値は obj
です。System
object のハンドルには任意の名前を使用できます。
既定では、入力と出力の数はいずれも 1 つです。入力と出力は [入力/出力] を使って追加できます。可変個の入力や出力を使用することもできます。入力数の変更を参照してください。
あるいは、MAT ファイルを編集して System
object を作成する場合は、[メソッドの挿入] 、 [アルゴリズムの実装] を使用して stepImpl
メソッドを追加できます。
stepImpl
メソッドで計算を変更して u
の値に 1
を追加します。
methods (Access = protected) function y = stepImpl(~,u) y = u + 1; end
ヒント
オブジェクト ハンドルを渡す代わりにチルダ (~
) を使用して、オブジェクト ハンドルが関数で使用されていないことを示すことができます。オブジェクト ハンドルの代わりに「~」を使用することによって、未使用の変数に関する警告の発生が回避されます。
既定の設定で標準テンプレートに含まれている未使用のメソッドを削除します。
これらのメソッドを変更して System object アクションとプロパティをさらに追加することができます。まったく変更を加えないことも可能であり、その場合でも System object は意図したように機能します。
これで、クラス定義ファイルに、この System object に必要なすべてのコードが含まれました。
classdef AddOne < matlab.System % ADDONE Compute an output value one greater than the input value % All methods occur inside a methods declaration. % The stepImpl method has protected access methods (Access = protected) function y = stepImpl(~,u) y = u + 1; end end end
getNumInputsImpl
| getNumOutputsImpl
| matlab.System
| stepImpl