Main Content

既定の動作を変更するメソッド

クラスの動作をカスタマイズする方法

ユーザーがオブジェクトに動作を実行するときに、MATLAB® が暗黙的に呼び出す関数があります。たとえば、[B(1);A(3)] のようなステートメントは、インデックスによる参照と垂直方向の連結を含みます。

特定の動作を制御するメソッドを定義して、ユーザー定義オブジェクトの動作を変更することができます。動作を変更するには、MATLAB 関数の名前とシグネチャをもつ適切なメソッドを実装します。

各動作を制御するメソッド

次の表ではクラスに実装するメソッドを挙げ、各メソッドが制御する動作を説明します。

実装するクラス メソッド

説明

オブジェクトの連結

cathorzcat、および vertcat

オブジェクトの連結時の動作をカスタマイズします。

プロパティをもつ組み込み型のサブクラスを参照してください。

空配列の作成

empty

指定されたクラスの空配列を作成します。

オブジェクトの表示

display

disp

MATLAB は、式またはステートメントがセミコロンで終了しない場合、display を呼び出します。これにより、結果および関連する変数名が表示されます。

disp(E) は式の結果のみを表示します。オブジェクトをどのように表示するかをカスタマイズする方法の 1 つに、disp のオーバーロードがあります。

関数 disp のオーバーロードを参照してください。

オブジェクトを他のクラスに変換

doublechar のような変換

オブジェクトを MATLAB 組み込みクラスに変換します。

文字コンバーターdouble コンバーターを参照してください。

オブジェクトの保存と読み込み

loadobj および saveobj

オブジェクトの読み込みと保存を行うときに動作をカスタマイズします。

オブジェクトの保存と読み込みを参照してください。

変形と再配列

permute

多次元配列の次元の再配列

transpose

ベクトルまたは行列の転置

ctranspose

複素共役転置

reshape

配列の形状変更

repmat

指定された次元に沿った配列の複製

サイズと形状の判定

isscalar

入力がスカラーかどうかの判定

isvector

入力がベクトルかどうかの判定

ismatrix

入力が行列かどうかの判定

isempty

入力が空かどうかの判定

関数のオーバーロードとメソッドのオーバーライド

オーバーロードとオーバーライドは、クラスの動作をカスタマイズする手法を説明する用語です。ここでは、MATLAB での使い方を説明します。

オーバーロード

オーバーロードは、同じスコープ内に同じ名前をもつ複数の関数またはメソッドがあることを意味します。MATLAB は優先引数に基づき特定の関数またはメソッドにディスパッチします。たとえば、timeseries クラスは MATLAB 関数 plot をオーバーロードします。入力引数として timeseries オブジェクトで plot を呼び出すと、MATLAB は、plot と名付けられた timeseries クラス メソッドを呼び出します。

オーバーロードされない関数を呼び出すには、関数 builtin を使用します。

オーバーライド

オーバーライドは、スーパークラスから継承されたメソッドを再定義することを意味します。MATLAB はメソッドの最も特定的なバージョンにディスパッチします。すなわち、優先引数がサブクラスのオブジェクトである場合は、MATLAB はサブクラス メソッドを呼び出します。

クラスの優位性を制御するには、InferiorClasses 属性を使用します。

関連するトピック