exponenta event banner

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

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

Пустые массивы не имеют элементов, но относятся к определенному классу. Все классы, не являющиеся абстрактами, имеют статический метод с именем 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-by-0.

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

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

Примечание

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

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

Связанные темы