我将大量数据存储为.mat文件中的嵌套单元格。我现在最大的问题是访问这些文件的加载时间,但我想知道潜在的问题是我是否提出了一种存储数据的低效方法,我应该将其重构为更小。
完整文件包含一个单元格aray:
Hemi{1,h}
其中有h
.{n,p}
其中有n
的85个版本和p
的最多约100个版本
.Variable
其中有10个变量,每个变量都有~2500个值
这个完整的文件占用了我所有的记忆,所以我把它保存在各个部分,又名:
Hemi1.mat=Hemi{1,1}
Hemi2.mat=Hemi{1,2}
等
此应用程序的下一步是加载每个文件,确定它的哪个部分是合适的解决方案(我需要Hemi{1,h}.{n,p}.Var1
,Hemi{1,h}.{n,p}.Var2
和Hemi{1,h}.{n,p}.Var3
,但是我仍然需要跟踪其他变量),保存解决方案,然后关闭文件并移动到下一个。
答案 0 :(得分:0)
这是相当多的数据。我有一些你可以调查的建议。第一个是查看是否可以将数据类型更改为Categorical Objects之类的内容。它们的内存效率更高。此外,如果您将字符串存储为最终数据,那么这可能会非常沉重。
其次,您可以查看HDF5 file storage。我听说这是存储结构化数据的好方法。
您最终可以尝试将{n,p}数组转换为表结构。我不确定这对于内存是否更好,但是表格很好用,它可能会帮助你。 (根据您的Matlab版本,您可能没有表格:P)。
我希望这有帮助!
-Kyle