Настройка класса ConstructOnLoad атрибут для true заставляет MATLAB ® вызывать конструктор класса при загрузке класса. MATLAB сохраняет и восстанавливает динамические свойства при загрузке объекта.
При создании динамических свойств из конструктора класса можно вызвать конфликт, если также задать класс ConstructOnLoad атрибут для true. Вот последовательность:
Сохраненный объект сохраняет имена и значения свойств, включая динамические свойства
При загрузке создается новый объект, и все свойства восстанавливаются до значений во время сохранения объекта.
Затем, ConstructOnLoad вызывает вызов конструктора класса, который создает другое динамическое свойство с тем же именем, что и загруженное свойство. Дополнительные сведения о последовательности нагрузок см. в разделе Сохранение и загрузка объектов.
MATLAB предотвращает конфликт, загружая сохраненное динамическое свойство, и не выполняет addprop при вызове конструктора.
Если вы используете ConstructOnLoad, добавить динамические свойства из конструктора класса и вызвать конструктор addprop во время загрузки, затем задайте динамическое свойство Transient атрибут для true. Этот параметр запрещает сохранение свойства. Например:
classdef (ConstructOnLoad) MyClass < dynamicprops function obj = MyClass P = addprop(obj,'DynProp'); P.Transient = true; ... end end