作者sacredluv (哔Be)
看板MATLAB
标题[运算]将txt读成矩阵, 遇到out of memory的问题
时间Wed Nov 26 15:07:05 2014
我有一个大小为34.8G的txt档, 里面都是0.XXXXXX 的六位小数点数值, 当初在写这份档
案的时候, 是在matlab下使用dlmwrite('data.txt', A, '-append' ), 慢慢将每一条向
量A写入的。
但我利用dlmread('data.txt')来读入矩阵时, 约莫读了一个小时半後, 出现了错误讯息:
Error using dlmread (line 139)
Out of memory. Type HELP MEMORY for your options.
本想打入指令memory来看看记忆体状况, 却出现
Error using memory
Function MEMORY is not available on this platform.
可能因为我的作业系统是Ubuntu吧!
然後load('data.txt')则是出现:
Error using load
Number of columns on line 97 of ASCII file
/media/Action/data.txt must be the same as previous lines.
我也使用过importdata('data.txt'), 可是跑了一阵子後, 整个matlab就被killed, 感觉
是超出可使用的memory, 被OS杀掉。
後来想一想, 我的memory有32G, 而档案却有34.8G, 要把这麽大一个矩阵读入是否根本不
可行? 若可行的话, 有甚麽做法呢?
(补充一下,此矩阵接下来需要拿来做k-means)
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.123.102.130
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/MATLAB/M.1416985628.A.022.html
1F:推 s15512207: 先切档再读? 11/26 15:59
2F:推 sunev: 推楼上,你的档案是ASCII格式,读进来後会小很多。 11/26 16:25
3F:→ mp19990920: .... 一次读 34G 的档案 !!! 11/26 16:40
4F:→ sacredluv: 请问切档再读是一个个把档案读成矩阵,然後再合并矩阵吗 11/27 14:11