【发布时间】:2015-09-02 00:27:37
【问题描述】:
我尝试在 MATLAB 中处理一个数据文件 (6.3GB),但无法加载它,我认为这可能是内存问题。我尝试加载一个较小的“示例”文件(39MB),这似乎可行,但我的实际文件根本不会加载。这是我的代码:
filename = 'C://Users/Andrew/Documents/filename.mat';
load(filename);
??? Error using ==> load
Can't read file C://Users/Andrew/Documents/filename.mat.
exist(filename);
EDU>> ans = 2
好吧,至少文件存在。当我检查内存时...
memory
Maximum possible array: 2046 MB (2.146e+009 bytes) *
Memory available for all arrays: 3442 MB (3.609e+009 bytes) **
Memory used by MATLAB: 296 MB (3.103e+008 bytes)
Physical Memory (RAM): 8175 MB (8.572e+009 bytes)
* Limited by contiguous virtual address space available.
** Limited by virtual address space available.
既然我有足够的 RAM,我是否需要增加最大可能的数组大小?如果是这样,我该如何在不增加更多 RAM 的情况下做到这一点?
系统细节:我正在运行 64 位 Windows、8GB RAM、MATLAB 版本 7.10.0.499 (R2010a)。我想我不能更新到更新的版本,因为我持有的是学生许可证。
【问题讨论】:
-
很遗憾,您不能增加最大可能数组。这意味着在您的情况下,无法加载超过
2046Mb的单个变量。我认为可行的唯一选择是分段加载,因为您最多可以加载8175Mb的数据。这并不完全正确,因为您需要 RAM 内存来运行 Matlab、Windows 等,但您知道了。