Main Content

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

空配列

空配列の作成

空配列とは、要素はありませんが特定のクラスに属している配列です。すべての非抽象クラスは、クラスの空配列を作成するemptyという名前の静的メソッドをもちます。emptyメソッドを使用すると、出力配列の次元を指定できます。ただし、次元のうち少なくとも 1 つは0でなければなりません。たとえば、SimpleValueクラスを以下のように定義します。

classdefSimpleValuepropertiesValueendmethodsfunctionobj = SimpleValue(v)ifnargin > 0 obj.Value = v;endendendend

SimpleValueクラスの 5 行 0 列の空配列を作成します。

ary = SimpleValue.empty(5,0)
ary = 5x0 SimpleValue array with properties: Value

引数なしでemptyを呼び出すと、0 x 0 の空配列を返します。

空配列への値の割り当て

空のオブジェクトは、配列のクラスを定義します。空でないオブジェクトを空の配列に割り当てるため、MATLAB®はクラスコンストラクターを呼び出して、他のすべての配列要素に対してクラスの既定のインスタンスを作成します。空でないオブジェクトを 1 つの配列に割り当てる場合は、すべての配列要素が空でないオブジェクトでなければなりません。

メモ

既定では、クラス コンストラクターは空のオブジェクトを返すことを避けなければなりません。

たとえば、オブジェクト配列の初期化の節で定義したSimpleValueを使用して空配列を作成します。

ary = SimpleValue.empty(5,0); class(ary)
ans = SimpleValue

aryはクラスSimpleValueの配列です。ただし、この配列は空です。

ary(1)
Index exceeds matrix dimensions.

プロパティ値を割り当てようとすると、MATLAB によってSimpleClassコンストラクターが呼び出され、配列が必要なサイズに拡張されます。

ary(5).Value = 7; ary(5).Value
ans = 7
ary(1).Value
ans = []

MATLAB は配列の 1 番目から 5 番目までの要素に、クラス コンストラクターを引数なしで呼び出して作成したSimpleValueオブジェクトを入力します。次に、ary(5)のオブジェクトに7というプロパティが割り当てられます。

関連するトピック