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

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

Пустые массивы не имеют никаких элементов, но определенного класса. Все неабстрактные классы имеют статический метод под названием empty это создает пустой массив того же класса. 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).

Похожие темы