Конструктор класса может создать массив, создав массив и вернув его в качестве выходного аргумента.
Для примера, ObjectArray класс создает объектный массив того же размера, что и входной массив. Затем он инициализирует Value свойство каждого объекта к соответствующему входу массива.
classdef ObjectArray properties Value end methods function obj = ObjectArray(F) if nargin ~= 0 m = size(F,1); n = size(F,2); obj(m,n) = obj; for i = 1:m for j = 1:n obj(i,j).Value = F(i,j); end end end end end end
Чтобы предварительно выделить объектный массив, сначала назначьте последний элемент массива. MATLAB® заполняет первый и предпоследний элементы массива ObjectArray объект.
После предварительного выделения массива назначьте каждый объект Value свойство соответствующему значению в массиве входа F. Чтобы использовать класс:
Создайте массив магического квадрата чисел 5 на 5
Создайте объектный массив 5 на 5
F = magic(5); A = ObjectArray(F); whos
Name Size Bytes Class Attributes A 5x5 304 ObjectArray F 5x5 200 double
Задан объектный массив objArray в котором каждый объект имеет свойство PropName:
Ссылка на значения свойств конкретных объектов с помощью индексации массивов:
objArray(ix).PropNameСсылка на все значения одного и того же свойства в объектном массиве с помощью записи через точку. MATLAB возвращает разделенный списками , разделенными запятыми значений свойств.
objArray.PropName
Чтобы назначить разделенный списками , разделенными запятыми переменной, заключайте выражение правой стороны в скобки:
values = [objArray.PropName]
Для примера, учитывая ObjProp класс:
classdef ObjProp properties RegProp end methods function obj = ObjProp obj.RegProp = randi(100); end end end
Создайте массив ObjProp объекты:
for k = 1:5 objArray(k) = ObjProp; end
Доступ к RegProp свойство второго элемента объектного массива, использующего индексацию массива:
objArray(2).RegProp
ans =
91Присвойте значения всем RegProp свойства для числового массива:
propValues = [objArray.RegProp]
propValues =
82 91 13 92 64
Используйте стандартные операции индексации для доступа к значениям числового массива. Для получения дополнительной информации о числовых массивах см. «Матрицы и массивы».