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

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

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

Похожие темы

Была ли эта тема полезной?