[問題] txt讀檔如何只讀某幾行已回收

看板MATLAB作者 (東刀輪一流)時間16年前 (2009/08/21 18:35), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/5 (看更多)
請教一下版上的各位前輩: 小弟的資料格式是由許多重複的區塊組成,單元區塊的組成如下: ===================================== . . (非資料列,列數不定) . . SSACC R 3601331 3601331 520.7 375.8 527.0 ... MSG 3601339 -4 TARGET_SHOW 3601339 521.0 353.5 528.0 ... 3601341 521.0 345.1 528.0 ... MSG 3601343 -9 TARGET_SHOW 3601353 519.4 302.7 526.0 ... . . . (以此類推,列數不定) . . . ESACC R 3601331 3601359 30 . . (非資料列,列數不定) . . ====================================== 小弟要取的是SSACC和ESACC這兩列內的資料 只有取前三行的數字,文字跳過,亦即只有取3601331 520.7 375.8此種數字而已 (第四行之後的也不要) 目前的寫法是: index = fgetl(fid); while isempty(findstr(index,'SSACC')) index = fgetl(fid); end yes = 1; data = []; temp=[]; while yes if strcmp(temp,'ESACC') % 如果讀到ESACC便跳出迴圈 break elseif ischar(temp) %如果讀到字串便捨棄此列 temp = fgetl(fid); end temp = fscanf(fid,'%f%f%f',3); %一列只讀三筆資料 data = [data;temp]; % 不會直接換列... end 但是fscanf的指令中,size只能設定總共要讀幾筆資料,並排列成一指定的矩陣格式 似乎不能跳著讀 所以我就用上述的寫法,打算一列一列讀,但是卻不知道該如何換列 請問是用fseek嗎?那參考點要怎麼設呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.47.117
文章代碼(AID): #1AZdXgOo (MATLAB)
文章代碼(AID): #1AZdXgOo (MATLAB)