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

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

Использование 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-файле к свойствам, значения которых не были сохранены, потому что свойства были установлены в значения по умолчанию, когда сохраненный. Эти присвоения приводят к вызовам методов набора свойств, заданных классом.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Смотрите также

Похожие темы