看板 MATLAB 關於我們 聯絡資訊
請問如果我的txt檔開頭有一些文字,下面是表格式的數值 我只想要把數值存成mat,但skip掉上面的文字該怎麼做呢 例如: ?分??(微秒): 100000 (USB2+H04873) 平均次?: 1 (USB2+H04873) 平滑度: 0 (USB2+H04873) 去除暗噪?: 否 (USB2+H04873) 使用??信?/?: 否 (USB2+H04873) ?子暗噪?校正: 否 (USB2+H04873) ?散光校正: 否 (USB2+H04873) >>>>>Begin Processed Spectral Data<<<<< 339.27 571.74 339.65 571.74 340.03 571.74 340.41 456.49 340.79 402.25 341.18 399.99 341.56 445.19 341.94 393.21 342.32 372.87 >>>>>End Processed Spectral Data<<<<< 就是我只要黃色的數值被讀成mat檔,可以做到嗎? 因為要把好幾筆這種file的data結合做運算,一個一個複製到excel太麻煩了 想看看MATLAB能不能直接把數值挑出來 謝謝回答> < -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.27.164
youmu:我都用 fgetl這個指令跳到下一行 再用fscanf這種白癡方法 10/31 14:21
youmu:要跳幾行就fgetl幾次 10/31 14:22
hyhjcjy:對不起,可以再說詳細一點嗎,不太會用@@ 10/31 14:44
hyhjcjy:我從前面的文章找到一個方法了! 先把所有的data存在cell裡 10/31 15:12
hyhjcjy:type再把cell裡的string轉回number 10/31 15:14
hyhjcjy:↑多打了type 10/31 15:14
hyhjcjy:CellText = textread('r2_rr00.txt','%s','whitespace','\ 10/31 15:15
hyhjcjy:t\n'); 10/31 15:15
hyhjcjy:values = CellText(18:4113,:); 10/31 15:16
hyhjcjy:cellfun(@str2num,values); 10/31 15:16
hyhjcjy:還是謝謝youmu大大哦 :) 10/31 15:18
hyhjcjy:如果你要再教我怎麼用你的寫法 我也很還是想知道哦:) 10/31 15:19
abc01251:[x y] = textread('xx.txt','%f %f','headerlines',7); 10/31 17:34
abc01251:不知道這樣可不可以達成 10/31 17:34
abc01251:只是讀出來 兩排會分別到 x y 加個 data=[x y]; 就OK了 10/31 17:35
hyhjcjy:abc01251大大,這樣前面的文字會無法讀取而error 10/31 20:19
hyhjcjy:youmu大大提供的方法我懂了!! 滿簡單的 10/31 20:20
hyhjcjy:fid = fopen(filename); 10/31 20:22
hyhjcjy:for k = 1:17 10/31 20:22
hyhjcjy:fgetl(fid); % 捨去列 10/31 20:22
hyhjcjy:end 10/31 20:22
hyhjcjy:values = fscanf(fid,'%f %f'); 10/31 20:23
hyhjcjy:不過要自己重新排列就是了 10/31 20:24
hyhjcjy:我不太懂fscanf寫幾個%f有什麼差別,也不會變成兩欄呀@@ 10/31 20:35
abc01251:所以 >><< 這個也在文件內容囉!? 10/31 23:10
abc01251:兩個 %f 是因為 你一行裡面有兩個數字 10/31 23:11
youmu:fscanf(fid,'%f %f',[x y]); 最後面填上你的矩陣大小,就會 11/01 21:00
youmu:幫你排好了,不用再重排! 11/01 21:00