Main Content

matlab.System クラス

System object の基底クラス

説明

matlab.System は System object の基底クラスです。クラス定義ファイルでは、この基底クラス (またはこの基底クラスから派生する別のクラス) から、オブジェクトをサブクラス化しなければなりません。サブクラス化により、この基底クラスで提供されている実装メソッドおよびサービス メソッドを使用してオブジェクトを作成できるようになります。matlab.System 基底クラスから直接継承するには、クラス定義ファイルの最初の行で次の構文を入力します。ここで、ObjectName は構成するオブジェクト名です。

classdef ObjectName < matlab.System

メモ

コードで使用する各 matlab.System メソッドに対し、Access = protected と設定しなければなりません。

matlab.System クラスは handle クラスです。

クラスの属性

抽象型
true
HandleCompatible
true
StrictDefaults
false

クラス属性の詳細については、クラスの属性を参照してください。

メソッド

すべて展開する

作成

説明

function obj = ObjectName(varargin)ObjectName System object™ を作成し、名前と値のペアの入力からプロパティを設定します。

System object コンストラクターはクラス ファイル内のパブリック メソッドです。メソッド名はクラス名と一致します。System object を作成するときにコンストラクターが呼び出され、プロパティを既定以外の値に初期化します。コンストラクターは新しい System object を返します。

コンストラクター内で、次の構文のいずれかを使用して setProperties を呼び出します。

setProperties(obj, nargin, varargin{:}) は、名前と値の引数を使用して System object のプロパティを設定することを指定します。

setProperties(obj, nargin, varargin{:}, Prop1, ..., PropN) は、値のみの引数を使用して System object のプロパティを設定することを指定します。

ヒント: コンストラクターの本体内ではプロパティ値を割り当てないでください。この手法では、複数の環境 (System ブロック内、MATLAB スクリプト内、および生成されたコード内など) で System object を使用する場合に問題を引き起こす可能性があります。代わりに、既定のプロパティ値を使用するか、setupImpl 内で値を変更してください。

すべて折りたたむ

この例では、AddOne という基本的な System object™ を作成する方法を示します。

MATLAB® で、[新規]、[System object]、[標準] を選択します。新しい System object の既定の構文とコメントを含む、新しいエディター ウィンドウが開きます。

クラス AddOne の名前を変更します。既定のテンプレートを変更して、クラスを次のようにします。

classdef AddOne < matlab.System
% ADDONE Compute an output value that increments the input by one

    methods (Access = protected)
       % Implement algorithm. Calculate y as a function of input x.
       function y = stepImpl(~,x)
          y = x + 1;
       end    
    end
end

AddOne のインスタンスを作成し、入力を指定してオブジェクトを実行することで、このオブジェクトを使用します。

addingObject = AddOne;
x = 5;
addingObject(x)
ans = 6

名前と値のペアの入力引数を使用できる System object コンストラクターを定義します。

名前と値のペアの入力に対応するコンストラクターを定義します。

function obj = Counter(varargin)
    % Support name-value pair arguments when constructing object
    setProperties(obj,nargin,varargin{:})
end

このコンストラクター本体と、名前と値のペアを使用して Counter オブジェクトを作成します。

myObj = Counter('StartValue',0,'UseIncrement',true);

値のみの入力プロパティをもつ System object コンストラクターを定義します。

値のみのプロパティ入力として 'StartValue' をもつコンストラクターを定義します。このコンストラクターでは名前と値の入力も使用できます。

function obj = Counter(varargin)
    % Support value-only argument for StartValue when instantiating
    setProperties(obj,nargin,varargin{:},'StartValue');
end

このコンストラクター本体と、StartValue に値のみの引数、他のプロパティに名前と値のペアを使用して、Counter オブジェクトを作成します。

myObj = Counter(0,'UseIncrement',true);

詳細

すべて展開する

バージョン履歴

R2011b で導入