我一直在尝试将数据文件(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工作空间中,我将不胜感激。
谢谢。
答案 0 :(得分:1)
我不是内存管理方面的专家,但根据经验,我可以告诉您,如果您导入/导出3GB文本文件,您将遇到各种问题。
我会使用外部工具在您阅读数据之前拆分数据,或者考虑将数据存储为更适合大型数据集的其他格式。就个人而言,我过去曾使用hdf5
- 这是专为大型数据集而设计的,matlab
也支持。
与此同时,这些链接可能有所帮助:
答案 1 :(得分:0)
我发布了before,展示了如何使用memmapfile()
在matlab中阅读大量文本文件。这项技术也可以帮到你。