主要内容

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

MATLAB組み込み型のサブクラス

MATLAB組み込み型

組み込み型は,数値配列,逻辑配列,文字配列など,基本的なデータの種類を表します。细胞配列および構造体などのその他の組み込み型には,任意のクラスに属するデータが含まれます。

組み込み型は,これらのクラスのオブジェクトを処理するメソッドを定義します。たとえば,並べ替え、算術演算および論理演算などの数値配列の演算を実行できます。

MATLAB®の組み込みクラスの詳細は,MATLABの基本クラスを参照してください。

メモ

組み込みクラスと同じ名前のクラスを定義するとエラーになります。

サブクラス化できる組み込み型

MATLAB数値クラスと逻辑クラスをサブクラス化することができます。数値型のリストは,数値型を参照してください。

密封属性が真正的に設定されたクラスをサブクラス化することはできません。クラスが密封であるかどうかを判別するには,クラスのメタデータをクエリします。

mc = ?类名;mc.Sealed

値が0であれば,そのクラスは密封ではなく,サブクラス化が可能です。

組み込み型をサブクラス化する理由

組み込みクラスのサブクラス化によって,特定のクラスのデータで行える操作を拡張します。たとえば,次の場合です。

  • クラスデータで固有の操作を実行する。

  • 組み込みクラスのメソッドとその他の組み込み関数を,サブクラスのオブジェクトで直接使用できるようにする。たとえば,算術演算子が既に定義されているクラス(など)からサブクラスが派生している場合,これらの演算子をすべて再実装する必要はありません。

組み込み型のサブクラスで使用できる関数

列挙型を定義するクラスを考えます。このクラスは,整数クラスから派生し,値を比較するメソッドや並べ替えるメソッドを継承できます。たとえば,int32のような整数クラスは,すべての比較演算のメソッド(情商通用电气gtlt)をサポートします。

サブクラスがメソッドとして継承した関数の一覧を見るには,関数方法を使用します。

方法(SubclassName

一般に,サブクラスのオブジェクトは次のいずれでも使用できます。

  • 継承メソッド

  • スーパークラスと同じクラスの入力引数を通常は受け入れる関数

サブクラスオブジェクトを使用した組み込み関数の動作

組み込みクラスのサブクラスを定義すると,その組み込みクラスで定義されたすべてのメソッドがサブクラスに継承されます。また,MATLABにより,いくつかの組み込み関数をオーバーライドする追加のメソッドが,組み込みクラスのサブクラスに提供されます。

組み込みクラスに使用される組み込みの関数とメソッドは,組み込みクラスのサブクラスで呼び出された場合に異なる動作をすることがあります。どの関数を使用しているか,またサブクラスでプロパティを定義しているかどうかによって,動作は異なります。

動作の分類

組み込みクラスのサブクラスで継承されたメソッドを呼び出した場合,結果はメソッドによって行われる処理の性質によって異なります。これらメソッドの動作は,次のように分類できます。

  • データの値を処理して,スーパークラスのオブジェクトを返す。たとえば,をサブクラス化して,2つのサブクラスオブジェクトを加算する場合は,数値が足し合わされ,クラスの値が1つ返されます。

  • データの方向や構造を処理して,サブクラスのオブジェクトを返す。このような処理を実行するメソッドには,重塑交换转置などがあります。

  • サブクラスのオブジェクトを組み込みクラスに変換して,指定されたクラスのオブジェクトを返す。uint32字符などの関数は,サブクラスのオブジェクトを組み込みオブジェクトと同じように取り扱います。

  • オブジェクトを比較,または特定のセットが含まれているかどうかをテストして,関数に応じて論理オブジェクトまたは組み込みオブジェクトを返す。isequalischarisobjectなどの関数は,サブクラスのオブジェクトをスーパークラスのオブジェクトと同じように取り扱います。

  • インデックス式でサブクラスのオブジェクトを返す。サブクラスでプロパティが定義されている場合,既定のインデックスは機能しなくなります。サブクラスは独自のインデックスメソッドを定義しなければなりません。

  • 連結によってサブクラスのオブジェクトを返す。サブクラスでプロパティが定義されている場合は,既定の連結が無効になるので,サブクラスで独自の連結メソッドを定義しなければなりません。

組み込みクラスのサブクラスで使用できる組み込み関数を一覧するには,関数方法を使用します。

プロパティを定義する組み込みサブクラス

組み込みクラスのサブクラスでプロパティが定義される場合は,MATLABの通常のインデックスと連結処理がサポートされなくなります。サブクラスのプロパティには任意のデータを含むことができるので,MATLABで通常これらの処理を行うために呼び出す組み込み関数を使用することができなくなるためです。

このため,プロパティをもつクラスに対するインデックス付けと連結を,サブクラスで定義しなければなりません。サブクラスでインデックス付けと連結機能が必要な場合は,サブクラスで適切なメソッドを実装する必要があります。

インデックス付けのメソッド

サブクラスでインデックス付けをサポートするには,次のメソッドを実装する必要があります。

  • subsasgn——ドット表記とインデックス付き代入の実装

  • subsref——ドット表記とインデックス付き参照の実装

  • subsindex——オブジェクトのインデックス値としての実装

連結のメソッド

サブクラスで連結をサポートするには,次のメソッドを実装する必要があります。

  • horzcat——オブジェクトの水平方向の連結の実装

  • vertcat——オブジェクトの垂直方向の連結の実装

  • ——指定した次元における配列オブジェクトの連結の実装

関連するトピック