主要内容

保存和加载对象的过程

保存并加载对象

采用保存加载存储和重新加载对象:

保存文件名目的加载文件名目的

保存了哪些信息?

保存Mat-Files中的对象保存:

  • 对象类的全名,包括任何包限定符

  • 动态属性的值

  • 所有属性默认值在类中第一个对象的类定义为sop文件。

  • 所有属性的名称和值,具有以下例外:

    • 如果它们的当前值与类定义中指定的默认值相同,则不会保存属性。

    • 如果他们的情况不会保存属性短暂的持续的, 要么依赖属性设置为真的

有关属性属性的描述,请参阅指定属性属性

要保存图形对象,请参阅Savefig

笔记

不要使用使用定义事件和侦听器的对象命令。这命令导致破坏为工作区中对象定义的任何侦听器。有关在保存对象时恢复侦听器的信息,请参阅恢复听众

如何加载属性数据?

从MAT文件加载对象时,加载函数恢复对象。

  • 加载创建一个新对象。

  • 如果是课程构造函数属性设置为真的加载呼叫没有参数的类构造函数。否则,加载不调用类构造函数。

  • 加载将保存的属性值分配给对象属性。这些分配的值受此类定义的任何属性验证。然后调用类定义的任何属性集方法,(在此情况下除外依赖持续的, 要么短暂的属性,不保存或加载)。

  • 加载将保存在Mat文件中保存的默认值分配给未保存的属性,因为在保存时将属性设置为默认值。这些分配导致调用类定义的属性集方法。

  • 如果加载对象的属性包含对象,则加载创建同一类的新对象并将其分配给属性。如果属性中包含的对象是句柄对象,则属性包含同一类的新句柄对象。

马铃薯草®调用属性集方法,以确保在类定义已更改的情况下仍然有效。

有关信息,请参阅属性集方法验证属性值

负载期间的错误

如果一个新版本的类删除,重命名或更改属性的验证,加载尝试设置更改或已删除属性时可以生成错误。

当从文件加载对象时发生错误时,MATLAB会执行以下操作之一:

  • 如果类定义一个loadobj.方法,matlab将保存的值返回给loadobj.A.中的方法塑造

  • 如果类没有定义一个loadobj.方法,Matlab默默地忽略了错误。这加载函数重新构建对象的属性值,该属性值不会产生错误。

在里面塑造传给了loadobj.方法,字段名称对应于属性名称。字段值是相应属性的保存值。

如果已保存的对象派生来自具有相同名称的私有属性的多个超级类,则塑造仅包含最直接超类的属性值。

有关如何实施的信息saveobj.loadobj.方法,参见修改保存和加载过程

变更财产验证

如果类定义更改属性验证,例如加载的属性值不再有效,则MATLAB替换该属性的当前定义的默认值。这个班级可以定义一个loadobj.方法或转换方法提供类版本之间的兼容性。

有关物业验证的信息,请参阅验证属性值

也可以看看

相关话题