2

我一直在尝试将数据文件(csv)加载到在 win7(64 位)上运行的 matlab 64 位中,但出现与内存相关的错误。文件大小约为 3 GB,第一列包含日期 (dd/mm/yyyy hh:mm:ss),另外两列包含买卖价格。内存命令返回以下内容:

  Maximum possible array:              19629 MB (2.058e+010 bytes) *
  Memory available for all arrays:     19629 MB (2.058e+010 bytes) *
  Memory used by MATLAB:                 522 MB (5.475e+008 bytes)
  Physical Memory (RAM):               16367 MB (1.716e+010 bytes)

*  Limited by System Memory (physical + swap file) available.

有人可以在这里解释一下最大可能的数组大小是否为 19.6 GB,那么为什么 matlab 在导入大约 3GB 的数据数组时会抛出内存错误。如果这对经验丰富的人来说是一个简单的问题,我深表歉意,因为我在进程/应用程序内存管理方面几乎没有经验。

如果有人还建议能够将此数据集加载到 matlab 工作区中的解决方案,我将不胜感激。

谢谢你。

4

2 回答 2

1

我不是内存管理方面的专家,但根据经验,我可以告诉您,如果您正在导入/导出 3GB 文本文件,您会遇到各种问题。

我会在您阅读数据之前使用外部工具拆分数据,或者考虑以更适合大型数据集的另一种格式存储该数据。就我个人而言,我过去曾使用hdf5过——这是为大型数据集设计的,也受matlab.

与此同时,这些链接可能会有所帮助:

在 MATLAB 中处理一个大的 CSV 文件

在 MATLAB 中高效处理大型数据集

于 2012-10-10T13:33:07.860 回答
0

在展示如何在 matlab 中读取巨大的文本文件之前,我已经发布过。memmapfile()这种技术也可以帮助你。

于 2012-10-10T13:37:20.607 回答