Matlab:打印特定行的数据

时间:2016-06-24 00:14:37

标签: matlab printf fopen fgets

我有以下功能:

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,但即使这样也行不通。

1 个答案:

答案 0 :(得分:0)

这一行是问题所在:

fid=fopen('ID.dat','w');

每次打开文件时,都会覆盖以前的内容(这就是'w'参数的作用)。将'w'更改为'a'(用于追加),您的文件将保留从一次写入到下一次的内容。