[討論] 請問textscan用法

看板MATLAB作者 (prof)時間5年前 (2019/03/24 18:52), 5年前編輯推噓1(105)
留言6則, 2人參與, 5年前最新討論串1/1
本來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

03/24 23:26, 5年前 , 1F
你的檔案來源如果是自己寫的程式跑出來的值,就直接該改
03/24 23:26, 1F

03/24 23:26, 5年前 , 2F
程式碼變成好讀不就好了。
03/24 23:26, 2F

03/24 23:29, 5年前 , 3F
如果不是,我可能會直接Ctrl+H取代不要的符號哈哈哈(趕
03/24 23:29, 3F

03/24 23:29, 5年前 , 4F
時間的做法
03/24 23:29, 4F

03/25 08:00, 5年前 , 5F
法1. 先用文字編輯器把換行符號取代成自訂的分隔符號
03/25 08:00, 5F

03/25 08:01, 5年前 , 6F
法2. 搭配迴圈讀各組的值
03/25 08:01, 6F
取代是也可以 但是我這個是一個加密檔轉出來的ASCII文字檔 等於我要加密轉檔ASCII=>ASCII讀進matlab(這篇問的部分) 這過程我希望可以是全自動的 不然加密轉檔等半天也不知道好了沒 然後才又手動取代再用matlab讀好麻煩 當然用matlab取代也可行 但這樣效率是不是不會比我直接用迴圈讀快? ※ 編輯: profyang (114.37.132.205), 03/25/2019 08:42:49
文章代碼(AID): #1Sbs5N2p (MATLAB)
文章代碼(AID): #1Sbs5N2p (MATLAB)