作者fushi (嘻嘻)
看板MATLAB
标题Re: [讨论] 读档>改值>存取 问题
时间Tue Nov 20 06:29:48 2012
※ 引述《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