我想在matlab中有效地保存数组。我有大小3000到9000的数组。如果我将此数组保存在mat文件中,它只使用保存功能消耗大约214 MB。如果我使用fwrite并使用float数据类型来到112左右。还有什么方法可以减少我在matlab中保存这个数组时所消耗的硬盘空间吗?
答案 0 :(得分:0)
我建议使用binary mode编写,然后使用压缩算法,如bzip
答案 1 :(得分:0)
有几种方法可以减少所需的内存:
不要使用您通常拥有的double
,而应考虑使用single
,或者甚至是uint8
或logical
。使用打印功能也是如此,但您可能需要考虑之后进一步压缩,因为打印不会创建压缩文件。
如果您的矩阵具有某种模式,有时可以利用它来更有效地存储数据。或者至少是创建数据的信息。最常见的例子是您的矩阵可以存储为几个向量。例如,当它是sparse
。