このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
ユーザーがオブジェクトに動作を実行するときに,MATLAB®が暗黙的に呼び出す関数があります。たとえば,[B (1); (3))
のようなステートメントは,インデックスによる参照と垂直方向の連結を含みます。
特定の動作を制御するメソッドを定義して,ユーザー定義オブジェクトの動作を変更することができます。動作を変更するには,MATLAB関数の名前とシグネチャをもつ適切なメソッドを実装します。
次の表ではクラスに実装するメソッドを挙げ,各メソッドが制御する動作を説明します。
実装するクラスメソッド |
説明 |
---|---|
オブジェクトの連結 |
|
猫 、horzcat ,およびvertcat |
オブジェクトの連結時の動作をカスタマイズします。 プロパティをもつ組み込み型のサブクラスを参照してください。 |
空配列の作成 |
|
指定されたクラスの空配列を作成します。空配列を参照してください。 | |
オブジェクトの表示 |
|
コマンドラインで セミコロンで終了しないステートメントによって呼び出されます。 関数dispのオーバーロードを参照してください。 カスタム表示インターフェイスを参照してください。 |
|
オブジェクトを他のクラスに変換 |
|
オブジェクトをMATLAB組み込みクラスに変換します。 |
|
オブジェクトのインデックス付け |
|
非標準のインデックス付き参照とインデックス付き代入の作成を可能にします。 オブジェクト配列インデックス付けを参照してください。 |
|
オブジェクトを使って,たとえば, オブジェクトのインデックスとしての结束を参照してください。 |
|
配列の要素数を判定 インデックスメソッド用のnargoutおよび输入参数个数の変更を参照してください。 |
|
オーバーロードして,インデックス式から返される値の数を指定します。 subsrefおよびsubsasgnの引数の数を参照してください。 |
|
配列の次元を判定 クラスでの大小と元素个数の使用を参照してください。 |
|
インデックス式でオブジェクトを利用してサポートします。 インデックス式におけるオブジェクトを参照してください。 |
|
オブジェクトの保存と読み込み |
|
loadobj およびsaveobj |
オブジェクトの読み込みと保存を行うときに動作をカスタマイズします。 オブジェクトの保存と読み込みを参照してください。 |
変形と再配列 |
|
多次元配列の次元の再配列 |
|
ベクトルまたは行列の転置 |
|
複素共役転置 |
|
配列の次元の変更 |
|
指定された次元に沿った配列の複製 | |
サイズと形状の判定 |
|
入力がスカラーかどうかの判定 |
|
入力がベクトルかどうかの判定 |
|
入力が行列かどうかの判定 |
|
入力が空かどうかの判定 |
オーバーロードとオーバーライドは,クラスの動作をカスタマイズする手法を説明する用語です。ここでは,MATLABでの使い方を説明します。
オーバーロードは,同じスコープ内に同じ名前をもつ複数の関数またはメソッドがあることを意味します。MATLABは優先引数に基づき特定の関数またはメソッドにディスパッチします。たとえば,timeseries
クラスはMATLAB関数情节
をオーバーロードします。入力引数としてtimeseries
オブジェクトで情节
MATLABはを呼び出すと,情节
と名付けられたtimeseries
クラスメソッドを呼び出します。
オーバーロードされない関数を呼び出すには,関数内装式
を使用します。
オーバーライドは,スーパークラスから継承されたメソッドを再定義することを意味します。MATLABはメソッドの最も特定的なバージョンにディスパッチします。すなわち,優先引数がサブクラスのオブジェクトである場合は,MATLABはサブクラスメソッドを呼び出します。
クラスの優位性を制御するには,InferiorClasses
属性を使用します。