Доступ к динамическим свойствам в массивах

Вы не можете ссылаться на все динамические свойства в объектном массиве с помощью одного оператора, так как можете с обычными свойствами. Для примера, 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 =

     1
a(2).DynoProp
ans =

     2

Для получения информации о классах, которые могут задать динамические свойства, смотрите Динамические свойства - Добавление свойств к образцу.