我在文本文件中写了几行,其中有一个矩阵。我决定使用fprintf作为普通文本消息,并使用dlmwrite将矩阵写入文件。但是,此操作在while循环中完成。这是大纲:
k=0;
while (k<10):
fprintf(file,'%s', 'Hello');
dlmwrite(file,M ,'-append', 'newline', 'pc');
fprintf(file, '%s' , 'Goodbye');
k= K+1;
然而,当我打开文件时,所有矩阵都附加到文本文件的最末端,而不是每个都在hello和goodbye之间。有没有办法解决这个问题?
答案 0 :(得分:4)
使用它:
k=0;
file = fopen('exp.txt','a');
while (k<10)
fprintf(file,'%s', 'Hello');
dlmwrite('exp.txt',A ,'-append', 'roffset', 1, 'delimiter', ' ')
fprintf(file, '%s\n' , 'Goodbye');
k= k+1;
end
答案 1 :(得分:3)
它可能与-append
选项有关,根据帮助将结果附加到文件的末尾。
您使用fprintf
和dlmwrite
两个函数访问同一个文件。
这可能效率不高,但在每次fprintf
写入后关闭文件都可以正常工作:
clear all
close all
file_name = 'aa.txt';
file = fopen(file_name, 'w');
fclose(file);
file = fopen(file_name, 'a');
M = randn(5);
for kk = 1:10
file = fopen(file_name, 'a');
fprintf(file, 'Hi\n');
fclose(file);
dlmwrite(file_name, M ,'-append', 'newline', 'pc');
file = fopen(file_name, 'a');
fprintf(file, 'Bye\n');
end
如果没有,只需尝试使用您创建的其他功能打印矩阵,并使用与fprintf
相同的文件处理程序。