看板 MATLAB 關於我們 聯絡資訊
本來matlab讀檔都寫得很隨意(用fgetl之類的一行行讀) 據說大檔案但有規律的用textscan讀起來蠻快的 但我的檔案內容類似這樣: 0: 0 1.55853637077072 1.55853643267316 1.55853630886829 1.55853624696587 -0.00134146529463404 1 1: 1e-13 1.55853637077072 1.55853643267316 1.55853630886829 1.55853624696587 -0.00134146529463405 1 2: 2e-13 1.55853637077072 1.55853643267316 1.55853630886829 1.55853624696587 -0.00134146529463405 2 總之應該可以看出就是0:開頭到1:前一行是一組 1:到2:前一行又是一組 以上共是3組 而我面對的檔案總共有至少上萬組甚至十萬組要讀 這樣要怎麼寫比較好?直接textscan(fid,'%f')的話卡了個0:和1:這種東西 想把':'和'\n'換行符號都當成delimiter好像也不讓我這樣寫: textscan(fid,'%f','delimiter',{':','\n'}) 又不想一行行fgetl之類的判斷然後讀 有沒有比較好的寫法呢?謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.166.216.213 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1553424727.A.0B3.html
book5601: 你的檔案來源如果是自己寫的程式跑出來的值,就直接該改 03/24 23:26
book5601: 程式碼變成好讀不就好了。 03/24 23:26
book5601: 如果不是,我可能會直接Ctrl+H取代不要的符號哈哈哈(趕 03/24 23:29
book5601: 時間的做法 03/24 23:29
physbook: 法1. 先用文字編輯器把換行符號取代成自訂的分隔符號 03/25 08:00
physbook: 法2. 搭配迴圈讀各組的值 03/25 08:01
取代是也可以 但是我這個是一個加密檔轉出來的ASCII文字檔 等於我要加密轉檔ASCII=>ASCII讀進matlab(這篇問的部分) 這過程我希望可以是全自動的 不然加密轉檔等半天也不知道好了沒 然後才又手動取代再用matlab讀好麻煩 當然用matlab取代也可行 但這樣效率是不是不會比我直接用迴圈讀快? ※ 編輯: profyang (114.37.132.205), 03/25/2019 08:42:49