推 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