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

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

However, MATLAB® возвращает ошибку, при попытке получить доступ к динамическим свойствам всех элементов массива с помощью этого синтаксиса.

a.DynoProp
No appropriate method, property, or field 'DynoProp' for class
'ObjectArrayDynamic'.

Обратитесь к каждому объекту индивидуально к значениям динамического свойства доступа:

a(1).DynoProp
ans =

     1
a(2).DynoProp
ans =

     2

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

Была ли эта тема полезной?