使用matfile无缘无故地导致巨大的文件

时间:2017-01-12 16:55:01

标签: matlab memory save

我需要能够只保存部分变量,因为每次都需要从头开始保存它们。为此,我正在使用matifiles,如此处所建议的那样(Saving only difference in custom class matlab

因此,在我的自定义类中,我定义了一个saveToFile函数,它保存了某些数组,稍后我将恢复我的类实例。然后,我使用matfile只更改这些数组中的差异,而不是从一开始就保存。它可以工作,因为我可以看到文件的大小随着我追加到变量的每一列而递增。

问题是这些文件的可笑程度;在我的过程的5次迭代之后,文件的大小是20 Mb。如果我用加载语法将它加载到matlab中,然后立即用save保存它,它只有1 Mb!经过20次迭代后,使用matfile保存的文件为80 Mb,但如果我将其加载到内存中并立即再次保存,则只需1.2 Mb!

所以要明确的是,有一个名为' results.mat'的文件。那是80Mb。如果我写一个= load(' results.mat')然后保存(' results2.mat',' a')它只有1.2 Mb。

我知道使用matifles会有一些开销,但很明显它不会那么大。此开销甚至看起来也没有线性扩展!你能告诉我发生了什么吗?

0 个答案:

没有答案