如何在matlab

时间:2017-03-23 12:40:22

标签: matlab serialization save

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

classdef A < handle
    b;
    c;
end

classdef B < handle
    d;
    e;
end

classdef C < handle
    f;
    g;
end

a = A;

其中a,b,c,d,e,f是其各自类的所有实例。最终,有基本数据类型(矢量或标量,比方说,双重)。

我需要保存a以便以稍后可以恢复的方式保存有关a,b,c,d,e,f的所有信息。

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

开发时间是一个问题。

如何轻松创建顶级A类型对象到磁盘的保存? (深拷贝,到磁盘)。

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

1 个答案:

答案 0 :(得分:2)

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

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

如果要自定义班级的保存或加载功能,可以分别重载saveobjloadobj方法。