Octave 倍频程:将向量保存到csvfile中的下一行

Octave 倍频程:将向量保存到csvfile中的下一行,octave,Octave,Noob问题,我正试图将每次迭代的结果保存到csv文件中以供以后使用,但是每次迭代代码都会覆盖csv文件中的旧数据,因此只留下最后的结果。我希望它在每次代码迭代时将新结果写在新行上,对如何解决这个问题有什么建议吗 代码,请原谅瑞典人的评论,实际计算不应影响问题: %förbered programmet% clc clear close all cd C:\Octave\Gauss_Newton Pread=dlmread('C:\Octave\Gauss_Newton\points_1.txt

Noob问题,我正试图将每次迭代的结果保存到csv文件中以供以后使用,但是每次迭代代码都会覆盖csv文件中的旧数据,因此只留下最后的结果。我希望它在每次代码迭代时将新结果写在新行上,对如何解决这个问题有什么建议吗

代码,请原谅瑞典人的评论,实际计算不应影响问题:

%förbered programmet%
clc
clear
close all
cd C:\Octave\Gauss_Newton
Pread=dlmread('C:\Octave\Gauss_Newton\points_1.txt',';',0,0);
%start for loop
max_iters=10
for i = 1 : max_iters
%create random noise
sizeP=size(Pread);
noise=0.002*randn(sizeP(1),sizeP(2))
P=Pread+noise
%linjär lösning%
%hitta mittenpunkten%
Pmid=round(rows(P)/2);
%tag fram L1 och rätvinklig vektor från mitten av L1%
L1=P(Pmid,:)-P(1,:);
L1P=P(1,:)+(L1/2);
L11y=-L1(1)/L1(2);
L11=[1,L11y];
%tag fram L2 och rätvinklig vektor L22 från mitten av L2%
L2=P(Pmid,:)-P(end,:);
L2P=P(end,:)+L2/2;
L22y=-L2(1)/L2(2);
L22=[1,L22y];
%fusk linjer%
L11f=cc_fusk-L1P;
L22f=cc_fusk-L2P;
cc_fuskB=intersectLines([L1P,L11f],[L2P,L22f]);
%hitta mittpunkten för cirkeln%
cc_lin=intersectLines([L1P,L11],[L2P,L22]);
%beräkna möjliga radier%
VR_1=cc_lin-P(1,:);
R_1=sqrt((VR_1(1))^2+(VR_1(2))^2);
VR_2=cc_lin-P(Pmid,:);
R_2=sqrt((VR_2(1))^2+(VR_2(2))^2);
VR_3=cc_lin-P(end,:);
R_3=sqrt((VR_3(1))^2+(VR_3(2))^2);
R_avrg_lin=(R_1+R_2+R_3)/3
%avvikelser
F=[abs(cc_lin(1)-cc_fusk(1)),abs(cc_lin(2)-cc_fusk(2)),abs(R_avrg_lin-R_fusk)]
dlmwrite('resultfile.csv', F,"delimiter", ",", "newline","/n")
end ``

除非明确指定要附加数据,否则每次调用
dlmwrite
都将废弃旧版本并生成新版本

:dlmwrite(文件,M,“-append”,…)