Использовать 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 делает одно из следующих:
В struct
передан в loadobj
метод, имена полей соответствуют именам свойства. Значения полей являются сохраненными значениями для соответствующих свойств.
Если сохраненный объект происходит от нескольких суперклассов, которые имеют частную собственность с таким же именем, struct
содержит только значение свойства самого прямого суперкласса.
Для получения информации о том, как реализовать saveobj
и loadobj
методы, см. Изменение процесса сохранения и загрузки.
Если определение класса изменяет валидацию свойства таким образом, что загруженные значения свойств больше не действительны, MATLAB заменяет текущее значение по умолчанию для этого свойства. Класс может задать loadobj
методы метода или конвертера для обеспечения совместимости между версиями классов.
Для получения информации о проверке свойств смотрите Валидация значений свойств