Matlab:在特定行上打印数据

Matlab: Printing a data on a specific line

我有以下功能:

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),把for循环换成了while循环还是不行

是不是因为我应该用一些虚拟的space来填充之前的行?除此之外,我执行了

for i=1:5 Write(i); end

每行应该打印 1 到 5,但即使这样也行不通。

这一行是问题所在:

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

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