exponenta event banner

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

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

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