Нельзя ссылаться на все динамические свойства в массиве объектов с помощью одной инструкции, как и с обычными свойствами. Например, ObjectArrayDynamic подклассы классов dynamicprops класс.
classdef ObjectArrayDynamic < dynamicprops properties RegProp end methods function obj = ObjectArrayDynamic obj.RegProp = randi(100); end end end
Можно добавлять динамические свойства к объектам ObjectArrayDynamic класс. Создайте массив объектов и добавьте динамические свойства к каждому элементу массива. Определить элементы 1 и 2 как ObjectArrayDynamic объекты:
a(1) = ObjectArrayDynamic; a(2) = ObjectArrayDynamic;
Добавьте динамические свойства к каждому объекту и назначьте значение.
a(1).addprop('DynoProp'); a(1).DynoProp = 1; a(2).addprop('DynoProp'); a(2).DynoProp = 2;
Получите значения обычных свойств, как и для любого массива.
a.RegProp
ans =
4
ans =
85Однако MATLAB ® возвращает ошибку, если вы пытаетесь получить доступ к динамическим свойствам всех элементов массива с помощью этого синтаксиса .
a.DynoProp
No appropriate method, property, or field 'DynoProp' for class
'ObjectArrayDynamic'.Обратитесь к каждому объекту отдельно, чтобы получить доступ к значениям динамических свойств:
a(1).DynoProp
ans =
1a(2).DynoProp
ans =
2Сведения о классах, которые могут определять динамические свойства, см. в разделе Динамические свойства - добавление свойств в экземпляр.