Re: 如何輸出比較快速

看板MATLAB作者 (smd)時間13年前 (2012/07/22 02:17), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串2/2 (看更多)
: 另一方面, fwrite 好像也不錯用....可是怎麼用阿? 檔案會存到哪裡去呢? : 譬如說這個網頁講到的: : http://www.mathworks.com/matlabcentral/newsreader/view_thread/266745 : : 推 kevinztw:改用fwrite之類低階檔案存取函數+上不要用回圈存 07/21 17:06 : → kevinztw:一次就存一整個完整矩陣 07/21 17:07 : 推 sunev:用save不行嗎? 07/21 17:42 喔喔感謝各為即時的回應~ 1. 阿...用 save 的確比較快 (費時小於csvwrite的1/4) 而且檔案比較小 (< 1/2) 哈哈我之前怎麼以為save比較慢...可能因為某些網頁這麼寫的吧 我自己也沒試 :P 2. 前一篇沒講清楚, 我其實的確是在迴圈跑完才存的: for i = 1:n ... ... <---產生數據 data = n by 56 矩陣, n = 3*10^5 end 費時約90秒 csvwrite(filename, data) % 費時約 83 秒, 如果是拆成兩種數據(uint8 & float)來存 也沒有比較快 save(filename, 'data') %按照預設的壓縮以及 unicode 等等 % 費時約 20 秒 ..........姑狗上說 fwrtite 可以更快?? % 如果加上 '-ascii' 的話費時 40 秒 3. 我還是不太懂 fwrite, 它的 code 並沒有地方讓我指定要存到哪個檔案不是嗎? Help 說明裡面的通例 count = fwrite(fid,A,precision); 其中 count 也只會是某整數, fid 的話我應該是要用 1 吧, A 就是我的數據矩陣 data, 而 precision 就是 real*4之類的. 那這樣有把檔案存到哪裡嗎? 謝啦 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 96.19.145.41

07/22 02:51, , 1F
要先fopen取得fid,最後要記得fclose
07/22 02:51, 1F

07/22 02:52, , 2F
但如果是單純要存變數,用save比較乾脆。
07/22 02:52, 2F

07/22 13:27, , 3F
喔喔~ 我再仔細瞧瞧. 謝啦
07/22 13:27, 3F
文章代碼(AID): #1G2l8s9U (MATLAB)
文章代碼(AID): #1G2l8s9U (MATLAB)