作者physmd (smd)
看板MATLAB
标题如何输出比较快速
时间Sat Jul 21 15:05:49 2012
我对 Matlab 不是很了解,看好像也没有,麻烦各位高手指点一下罗~ 多谢
我的资料有两种,第一种只会是 0~8的整数,第二种是 double(不过其实float就够了)
第一种是一个 n by 50 的矩阵,第二种是 n by 6 的矩阵, n 是三十万左右。
(其实计算总是跑不停的,需要不断写到硬碟,最好是能抓到一个平衡说多久存一次。
目前 n 是三十万,不知道 n 是更大一点好还是更小一点好...不过那是一个议题吧)
现在我直接用 csvwrite 第一种大约花 65 秒(30Mb),第二种大约花 17 秒 (13Mb)。
我觉得太久了,因为产生这些数据的回圈什麽的也只需要花 90 秒左右而已。同时,
好像第一种就算明确定义成 uint8 好像也没有比较快或比较小....我乾脆还是把
两种合并成一个 n by 56 的矩阵算了?
(因为其实本来每一笔(row)资料就是要两种合在一起看)
偷偷说一下,用 R 的 list 的话,两者合起来的大小也只有一半左右而已,22Mb。
我google 了一下,好像说存成 binary 格式会比较快也比较省空间....不过这个
网页提供的 QEMcelltocsv.m 好像是针对储存字串的(?),请问要怎麽改成可以
存数字阿?
http://www.mathworks.com/matlabcentral/newsreader/view_thread/243930
另一方面, fwrite 好像也不错用....可是怎麽用阿? 档案会存到哪里去呢?
譬如说这个网页讲到的:
http://www.mathworks.com/matlabcentral/newsreader/view_thread/266745
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 96.19.145.41
※ 编辑: physmd 来自: 96.19.145.41 (07/21 15:19)
1F:推 kevinztw:改用fwrite之类低阶档案存取函数+上不要用回圈存 07/21 17:06
2F:→ kevinztw:一次就存一整个完整矩阵 07/21 17:07
3F:推 sunev:用save不行吗? 07/21 17:42