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'
(用于追加),您的文件将保留从一次写入到下一次写入的内容。
我有以下功能:
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'
(用于追加),您的文件将保留从一次写入到下一次写入的内容。