我有以下功能:
function [] = Write(iteration)
status=close('all');
nomrep=num2str(iteration);
fid=fopen('ID.dat','a');
frewind(fid);
for l=1:iteration
line=fgetl(fid);
end
fprintf(fid,[nomrep,' \n']);
status=fclose(fid);
end
我希望Write(15)
创建ID.dat,并在第15行开头的连续行中打印2和15。
但是这些值总是打印在文件的开头。
即使我单独尝试fgetl(fid)
,也替换为循环,而while循环仍无法正常工作。
是否因为我应该在之前使用虚拟空间填充行?与此同时,我执行了
for i=1:5
Write(i);
end
每行应该打印1到5,但即使这样也行不通。
答案 0 :(得分:0)
这一行是问题所在:
fid=fopen('ID.dat','w');
每次打开文件时,都会覆盖以前的内容(这就是'w'
参数的作用)。将'w'
更改为'a'
(用于追加),您的文件将保留从一次写入到下一次的内容。