Пустые массивы

Создание пустых массивов

Пустые массивы не имеют элементов, но имеют определенный класс. Все неабстрактные классы имеют статический метод с именем empty который создает пустой массив того же класса. The empty метод позволяет вам задать размерности выхода массива. Однако, по крайней мере, одна из размерностей должна быть 0. Для примера задайте SimpleValue класс:

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

Создайте пустой массив классов 5 на 0 SimpleValue.

ary = SimpleValue.empty(5,0)
ary = 

  5x0 SimpleValue array with properties:

    Value

Вызывающие empty без аргументов возвращает пустой массив 0 на 0.

Назначение значений как пустой массив

Пустой объект задает класс массива. Чтобы назначить непустые объекты пустому массиву, MATLAB® вызывает конструктор классов для создания образцов класса по умолчанию для каждого другого элемента массива. После назначения непустого объекта массиву все элементы массива должны быть непустыми объектами.

Примечание

Конструктор классов должен избегать возврата пустых объектов по умолчанию.

Для примера используйте SimpleValue заданный в разделе Initialize Object Arrays, создайте пустой массив:

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 заполняет элементы массива с одного по пять с SimpleValue объекты, созданные вызовом конструктора классов без аргументов. Затем MATLAB присваивает значение свойства 7 к объекту в ary(5).

Похожие темы