Re: [討論] 讀檔>改值>存取 問題

看板MATLAB作者 (嘻嘻)時間11年前 (2012/11/20 06:29), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《elbow (elbow)》之銘言: : 我有一個.dat檔,內涵數值與字串,請問我該如何用matlab改寫裡面的值? : 例如: : type myDATA.dat : dat黨內總共有7行 : 前4行是數值,每行的列數都不一樣 : 後2行是字串 : 請問我該如何撰寫我的程式 : 達到以下步驟: : 1.開啟myDATA.dat : 2.將第三行的值120改為130; 第四行的543改為500; 其餘數值與字串均不動 : 3.儲存檔案,新的myDATA.dat會附蓋舊的 : ===== : 我已經試過這樣可以讀取檔案裡的值了: : >fid = fopen('myDATA.dat','r'); : >cc=fscanf(fid,'%f', [16]); %%讀取檔案裡的前16個值,不會動到字串的部分 : >fclose(fid); : >cc %%顯示這16個值,但是沒有辦法換行 : ===== : 懇請大家開釋,謝謝 試試看吧 大意是另外開一個檔案 複製貼上不變的 只把那行要變得換掉 fid = fopen('test1.txt','r'); fid2 = fopen('test2.txt','w'); tline = fgetl(fid); % r=0; while ischar(tline) % 算檔案有幾行 % disp(tline); tline = fgetl(fid); r = r+1; end frewind(fid) % 回到檔案頭 for i = 1: r tline = fgets(fid); % if i == 3 tline2 = '0 60 150 55'; fprintf(fid2, '%s\r\n', tline2); else fwrite(fid2, tline); end end fclose(fid); fclose(fid2); 我寫的應該不是很簡潔 你可以試著把第一個WHILE那邊改掉 有錯請指證 有更好的寫法也請讓我知道 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 128.192.73.150
文章代碼(AID): #1GghBVQQ (MATLAB)
文章代碼(AID): #1GghBVQQ (MATLAB)