ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

名前付きの値

事前定義名の種類

MATLAB® は次の 2 種類の事前定義名をサポートしています。

  • 定数プロパティ

  • 列挙型

定数プロパティ

値がさまざまなタイプ (数値、文字列など) に属することのできる定数値に関連した集合が必要な場合は、定数プロパティを使用します。プロパティの Constant 属性を設定することで、定数値をもつプロパティを定義します。特定の値にアクセスする必要があるときは、名前で定数プロパティを参照します。

詳細は、定数値をもつクラス プロパティの定義を参照してください。

列挙型

単一のタイプの値を表現する名前の固定セットを作成するときは列挙型を使用します。クラスごとに再定義することなく、複数の場所でこの新しい型を使用します。

他のクラスから列挙型クラスを派生して、スーパークラスの動作を継承することができます。たとえば、doubleint32 のような MATLAB 数値クラスをサブクラス化する列挙型クラスを定義した場合、列挙型クラスは、MATLAB がこれらのクラスのために定義したすべての算術演算や関係演算を継承します。

色 ('red') など、値を表現するために文字列の代わりに列挙型を使用すると、次の理由により可読性の良いコードになります。

  • strcmp を使用する代わりに == で列挙型メンバーを比較できます。

  • 列挙型は型情報を保持しますが、char ベクトルは保持しません。たとえば、char ベクトル 'red' を関数に渡した場合、すべての関数は 'red' が何を意味するかを解釈しなければなりません。red を列挙型として定義すれば、'red' の実際の値は (たとえば、[1 0 0] から [.93 .14 .14] に) 変更でき、色を受け入れるすべての関数を更新する必要がありません。色を char ベクトル 'red' として定義した場合は関数を更新する必要があります。

クラス定義内で enumeration ブロックを作成することで列挙型を定義します。

詳細は、列挙型クラスの定義 を参照してください。

列挙型を定義するための手法

列挙型を使用すると、数値または文字列を使用することなく、アプリケーションにとって便利なエンティティを表現する名前を定義できます。すべての列挙型は、等式演算と不等式演算をサポートしています。したがって、switchif、および、isequalismember のようないくつかの比較関数は、列挙メンバーで使用できます。

列挙型クラスの定義は、以降の節で説明するように、アプリケーションにとって最も便利であるような方法で行うことができます。

単純な列挙名

単純な列挙型クラスはスーパークラスやプロパティをもちません。これらのクラスは、関連付けられた基本値をもたない関連名のセットを定義します。説明的な名前を使用したい場合、アプリケーションは名前に関連付けられた特定の情報を必要としない場合は、この種の列挙型を使用します。

列挙型クラスおよび列挙型クラス内でのメソッドの定義節の WeekDays クラスを参照してください。

組み込みクラスをもつ列挙型の動作

MATLAB 組み込みクラスをサブクラス化する列挙型クラスは、これらのクラスの動作のほとんどを継承します。たとえば、double クラスから派生した列挙型クラスは、クラスの変数で使用できる算術演算、関係演算、集合演算を継承します。

列挙型は、スーパークラスでサポートしていても、コロン (:) 演算子をサポートしません。

メンバー データのプロパティをもつ列挙型

MATLAB 組み込み数値および logical クラスをサブクラス化しない列挙型クラスは、プロパティを定義できます。これらのクラスは、各メンバーの一意のプロパティ値を設定するコンストラクターを定義できます。

コンストラクターはプロパティ値に入力引数を保存できます。たとえば、以下のように Color クラスは Red 列挙型メンバーの色を 3 つの値 (Red、Green、Blue) で指定できます。

enumeration
   Red (1,0,0)
end

関連するトピック