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如果对同一实例有两个引用,它们也会作为对同一句柄对象的引用加载回。