Main Content

空配列

空配列の作成

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

classdef SimpleValue
   properties
      Value
   end
   methods
      function obj = SimpleValue(v)
         if nargin > 0
            obj.Value = v;
         end
      end
   end
end

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 というプロパティが割り当てられます。

関連するトピック