Сохранение и загрузка процесса для объектов

Сохранение и загрузка объектов

Используйте save и load, чтобы сохранить и перезагрузить объекты:

save filename object
load filename object

Какая информация сохранена?

Сохранение объектов в MAT-файлах сохраняет:

  • Полное имя класса объекта, включая любые спецификаторы пакета

  • Значения динамических свойств

  • Все значения свойства по умолчанию, заданные классом в то время первый объект класса, сохранены в MAT-файл.

  • Имена и значения всех свойств, за следующими исключениями:

    • Свойства не сохранены, если их текущие значения совпадают со значениями по умолчанию, заданными в определении класса.

    • Свойства не сохранены, если их Transient, Constant или Dependent приписывают набор true.

Для описания атрибутов свойства смотрите, Задают Атрибуты свойств

Чтобы сохранить графические объекты, смотрите savefig.

Примечание

Не используйте команду pack с объектами, которые задают события и прослушиватели. Команда pack вызывает разрушение любых прослушивателей, заданных для объектов в рабочей области. Для получения информации о восстановлении прослушивателей при сохранении объектов смотрите Прослушиватели Восстановления.

Как данные свойства загружены?

Когда загружаемые объекты из MAT-файлов, функция load восстанавливает объект.

  • load создает новый объект.

  • Если класс, атрибут ConstructOnLoad установлен в true, load, вызывает конструктора класса без аргументов. В противном случае load не вызывает конструктора класса.

  • load присваивает сохраненные значения свойств свойствам объектов. Эти присвоения приводят к вызовам методов набора свойств, заданных классом (кроме случая Dependent, Constant или свойств Transient, которые не являются сохраненными или загруженными).

  • load присваивает значения по умолчанию, сохраненные в MAT-файле к свойствам, значения которых не были сохранены, потому что свойства были установлены в значения по умолчанию, когда сохраненный. Эти присвоения приводят к вызовам методов набора свойств, заданных классом.

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

Для получения информации о методах набора свойств см. Методы Набора свойств.

Ошибки во время загрузки

Если новая версия класса удаляет, переименовывает или изменяет валидацию для свойства, load может сгенерировать ошибку при попытке установить измененное или удаленное свойство.

Когда ошибка происходит, в то время как объект загружается из файла, MATLAB выполняет одно из следующих действий:

  • Если класс задает метод loadobj, MATLAB возвращает сохраненные значения к методу loadobj в struct.

  • Если класс не задает метод loadobj, MATLAB тихо игнорирует ошибки. Функция load воссоздает объект со значениями свойств, которые не производят ошибку.

В struct, переданном методу loadobj, имена полей соответствуют именам свойства. Значения полей являются сохраненными значениями для соответствующих свойств.

Если сохраненный объект выводит от нескольких суперклассов, которые имеют частные свойства с тем же именем, struct содержит только значение свойства самого прямого суперкласса.

Для получения информации о том, как реализовать saveobj и методы loadobj, смотрите, Изменяют Процесс Сохранения и Загрузки.

Изменения в валидации свойства

Если определение класса изменяет валидацию свойства, таким образом, что загруженные значения свойств больше не действительны, MATLAB заменяет в настоящее время заданным значением по умолчанию то свойство. Класс может задать метод loadobj или методы конвертера, чтобы обеспечить совместимость среди версий класса.

Для получения информации о валидации свойства см. Проверку значений свойств

Похожие темы