Re: [討論] 讀取多檔txt倒數某行的值輸出txt(附P幣)

看板MATLAB作者 (安安)時間6年前 (2018/02/05 22:22), 編輯推噓1(102)
留言3則, 2人參與, 6年前最新討論串1/1
※ 引述《wavek (壞貓咪)》之銘言: : 自信心大受打擊 當完兵變智障 : 現在對程式語言完全不熟QQ : 有許多問題想請教 : 先描述我想做的東西 : (1)多檔讀取 : 總共有好幾個txt檔 : 檔案可能約4-16個 : 不過檔名有順序 : 譬如com1,com2,com3... : 補充: : 有好幾個txt檔 : 不過是分別在不同資料夾 : 但資料夾名稱是有順序 : 跟txt檔名一樣 : (2) : 每個檔案開頭有固定行數 : 不重要的中英文字 : (3) : 不重要的中英文字之後 : 每個檔案會有固定三欄 但不固定行數 : 但至少都是千行起跳 : 而我只需要倒數第二行 第三個的資料 : 在此先將此值稱為X : (4) : 輸出一個新的txt檔 : 內容是 : 1 X(com1) : 1 X(com2) : 1 X(com3) : . : . : . : https://i.imgur.com/GGj9Ttl.jpg
: 大概是這樣 : 然後我目前的進度.. : 遇到個小問題 : https://i.imgur.com/piR4TrB.jpg
: 我連想要隨便顯示一個值都沒辦法 : 不知道問題在哪裡>< : 已經有爬文了 : 不過弄了滿久都完全沒進展 : 故上來求救!!! : 還有環境關係不方便(應該說不能)上網查資料 : 慘慘 : 求開示 : 修改1 : 發現是fopen問題 : 後來加上fopen後沒有fid undefined問題 : 但遇上其他問題 無法印出東西 : https://i.imgur.com/UTkHVO3.jpg
: 弄好久沒進展頭好痛QQ : 希望有大大可以幫忙解決頭痛 : code可以完成任務的 : 願附上1000P聊表心意 clc;clear; Files = dir(fullfile(pwd,'Com_*.txt')); FileNames = {Files.name}; f=cellfun(@fopen,FileNames,'UniformOutput',0); fout=fopen('Data.txt','w'); n=length(f); cellfun(@frewind,f); for i=1:n while not(feof(f{i})) s=fgetl(f{i}); if feof(f{i}) break end s1=s; end d=sscanf(s1,'%f'); fprintf(fout,'%d\t%f\r\n',i,d(end)); end fclose('all'); %Com_*那邊改成你檔案的形式*是檔案編號的部分 %看看這樣能不能成功^^ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.226.174.228 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1517840565.A.D87.html

02/05 23:07, 6年前 , 1F
如果說檔案很多的話可能要把fopen、frewind、fclose
02/05 23:07, 1F

02/05 23:08, 6年前 , 2F
放進迴圈中
02/05 23:08, 2F

02/07 14:59, 6年前 , 3F
還是謝謝
02/07 14:59, 3F
文章代碼(AID): #1QU6Yrs7 (MATLAB)
文章代碼(AID): #1QU6Yrs7 (MATLAB)