在自定义类matlab中只保存差异

在自定义类matlab中只保存差异,matlab,file-io,processing-efficiency,savechanges,memory-efficient,Matlab,File Io,Processing Efficiency,Savechanges,Memory Efficient,我已经定义了一个类Results,它假定保持某个操作的结果。我执行此操作10.000次,并将结果添加到结果类中 由于此操作很慢,为了防止数据丢失,我每次都保存临时结果(即,我在类中的方法内调用save('tempResults.mat','obj')) 问题是我每次都是从头开始写全班同学。但到第5000次时,该类已达到~1GB。 将1GB数据写入10.000次是不可用的,尤其是当类中只有一些小的变化时 我如何解决这个问题?显然matlab中的save函数不支持这一点。我也可以为我的类编写一个自定

我已经定义了一个类Results,它假定保持某个操作的结果。我执行此操作10.000次,并将结果添加到结果类中

由于此操作很慢,为了防止数据丢失,我每次都保存临时结果(即,我在类中的方法内调用save('tempResults.mat','obj'))

问题是我每次都是从头开始写全班同学。但到第5000次时,该类已达到~1GB。 将1GB数据写入10.000次是不可用的,尤其是当类中只有一些小的变化时


我如何解决这个问题?显然matlab中的save函数不支持这一点。我也可以为我的类编写一个自定义保存函数(分别保存一些矩阵和向量,然后在需要时再次加载),但即使对于数组或矩阵,matlab中的保存函数也不支持追加新行。那么如何实现这一点呢?

也许您可以在对象中缓存旧的结果,并且只在每次修改时将其写入磁盘?否则,您将不得不开发一个自定义函数来查找已更改的属性,并提出自己跟踪这些更改的方法。我正在设想一个类似于JSON补丁的数据结构,您是否也考虑过使用
matfile
对象?我用持久变量测试这个问题。。。只需将变量保存在持久变量中,就可以防止分页memory@saeedmasoomi持久变量如何防止数据丢失?@suever实际上我没有,谢谢你的输入。我会试着看看我需要的东西是否有可能。但我不认为能够在保存的文件中向矩阵追加一行是如此奇怪的要求,我认为这将更加简单:-)