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