作者profyang (prof)
看板MATLAB
標題[討論] 請問textscan用法
時間Sun Mar 24 18:52:03 2019
本來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