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