主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

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

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

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

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

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

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

実装するクラスメソッド

説明

オブジェクトの連結

horzcat,およびvertcat

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

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

空配列の作成

指定されたクラスの空配列を作成します。空配列を参照してください。

オブジェクトの表示

disp

显示

コマンドラインでdisp (obj)を入力するときに呼び出されます。

セミコロンで終了しないステートメントによって呼び出されます。dispは,显示メソッドを実装するためによく使用されます。

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

カスタム表示インターフェイスを参照してください。

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

字符のような変換

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

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

オブジェクトのインデックス付け

subsrefsubsasgn

非標準のインデックス付き参照とインデックス付き代入の作成を可能にします。

オブジェクト配列インデックス付けを参照してください。

结束

オブジェクトを使って,たとえば,(1:结束))のようなインデックス式の结束構文をサポートします。

オブジェクトのインデックスとしての结束を参照してください。

元素个数

配列の要素数を判定

インデックスメソッド用のnargoutおよび输入参数个数の変更を参照してください。

numArgumentsFromSubscript

オーバーロードして,インデックス式から返される値の数を指定します。

subsrefおよびsubsasgnの引数の数を参照してください。

大小

配列の次元を判定

クラスでの大小と元素个数の使用を参照してください。

subsindex

インデックス式でオブジェクトを利用してサポートします。

インデックス式におけるオブジェクトを参照してください。

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

loadobjおよびsaveobj

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

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

変形と再配列

交换

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

转置

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

ctranspose

複素共役転置

重塑

配列の次元の変更

repmat

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

サイズと形状の判定

isscalar

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

isvector

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

ismatrix

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

isempty

入力が空かどうかの判定

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

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

オーバーロード

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

オーバーロードされない関数を呼び出すには,関数内装式を使用します。

オーバーライド

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

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

関連するトピック