如何輸出比較快速

看板MATLAB作者 (smd)時間13年前 (2012/07/21 15:05), 編輯推噓2(201)
留言3則, 2人參與, 最新討論串1/2 (看更多)
我對 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)

07/21 17:06, , 1F
改用fwrite之類低階檔案存取函數+上不要用回圈存
07/21 17:06, 1F

07/21 17:07, , 2F
一次就存一整個完整矩陣
07/21 17:07, 2F

07/21 17:42, , 3F
用save不行嗎?
07/21 17:42, 3F
文章代碼(AID): #1G2bJGq1 (MATLAB)
文章代碼(AID): #1G2bJGq1 (MATLAB)