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