Конструктор класса может создать массив, создав массив и вернув его в качестве выходного аргумента.
Для примера, 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
Используйте стандартные операции индексации для доступа к значениям числового массива. Для получения дополнительной информации о числовых массивах см. «Матрицы и массивы».