matlab中如何将handle对象层次结构保存到磁盘

matlab中如何将handle对象层次结构保存到磁盘,matlab,serialization,save,Matlab,Serialization,Save,例如,我有一些大句柄对象层次结构 classdef A < handle b; c; end classdef B < handle d; e; end classdef C < handle f; g; end a = A; classdef A

例如,我有一些大句柄对象层次结构

classdef A < handle
    b;
    c;
end

classdef B < handle
    d;
    e;
end

classdef C < handle
    f;
    g;
end

a = A;
classdef A
其中
a、b、c、d、e、f
都是各自类的实例。最后,还有一些基本的数据类型(向量或标量,比如double)

我需要保存
a
,以保存有关
a、b、c、d、e、f的所有信息,以便以后恢复

运行时间现在对我来说不是问题

开发时间是一个问题

如何轻松地将顶级a类型对象保存到磁盘?(深度拷贝,到磁盘)


我希望它能自动发生(内置),可能有点像java的序列化,而不必为我在类结构中所做的每一次更改而更改某些保存方法。

使用内置工具使用MATLAB保存对象时,它会自动保存“深度副本”因为它保存了对象的所有属性,如果这些属性中的任何一个也是对象或对象数组,则它们本身将被序列化。然后可以使用内置函数轻松地再次加载对象。值得注意的是,为了正确加载自定义类的对象,调用
load
时类定义必须位于路径上

save('output.mat', 'a')
fromdisk = load('output.mat');

如果您想自定义类的保存或加载功能,可以分别重载和方法。

Matlab的
save
有什么问题?很抱歉,我忘了从handle继承,现在正在修复它。save是否也适用于继承句柄的classed(意味着所有成员都是通过引用的)?@Gulzar Yes如果对同一实例有两个引用,它们也会作为对同一句柄对象的引用加载回。