Пустые массивы не имеют элементов, но относятся к определенному классу. Все классы, не являющиеся абстрактами, имеют статический метод с именем 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 =
7ary(1).Value
ans =
[]MATLAB заполняет элементы массива от одного до пяти SimpleValue объектов, созданных путем вызова конструктора класса без аргументов. Затем MATLAB присваивает значение свойства 7 к объекту в ary(5).