matlab中的大数据文件无法加载/导入

时间:2012-10-10 13:22:23

标签: matlab memory bigdata

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

  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工作空间中,我将不胜感激。

谢谢。

2 个答案:

答案 0 :(得分:1)

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

我会使用外部工具在您阅读数据之前拆分数据,或者考虑将数据存储为更适合大型数据集的其他格式。就个人而言,我过去曾使用hdf5 - 这是专为大型数据集而设计的,matlab也支持。

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

Working with a big CSV file in MATLAB

Handling Large Data Sets Efficiently in MATLAB

答案 1 :(得分:0)

我发布了before,展示了如何使用memmapfile()在matlab中阅读大量文本文件。这项技术也可以帮到你。