Matlab 在现有CSV文件末尾追加新行

Matlab 在现有CSV文件末尾追加新行,matlab,append,export-to-csv,Matlab,Append,Export To Csv,我有一个MATLABcode,它以数组的形式产生多个输出,所有这些都有20行和1列,对于每一次迭代,我都有相同的结果,即5个数组:Input,Ftn\u Noise\u real,Ftn\u Noise\u imag,After\u Matchfilter\u imag(它们都有20行和1列). 然后在代码块中将这五个数组合并为一个数组(20行5列)。我试图通过csvwrite的帮助将此数组写入csv文件。但在每次迭代中,它都会覆盖上一次迭代结果上的新数据 我想合并所有迭代的输出。例如,第一次迭

我有一个MATLABcode,它以数组的形式产生多个输出,所有这些都有20行和1列,对于每一次迭代,我都有相同的结果,即5个数组:
Input
Ftn\u Noise\u real
Ftn\u Noise\u imag
After\u Matchfilter\u imag
(它们都有20行和1列). 然后在代码块中将这五个数组合并为一个数组(20行5列)。我试图通过
csvwrite
的帮助将此数组写入csv文件。但在每次迭代中,它都会覆盖上一次迭代结果上的新数据

我想合并所有迭代的输出。例如,第一次迭代代码编写一个数组,它是这五个数组的组合,就像所示的数据图像一样,然后第二次迭代应该开始从第20行写入到第40行,以此类推。最后我得到了一个包含80行5列的csv文件

for EbNo = 0:2:4
%here some codes block produce array
.
.
.
%Writing part
filename = ['DATA' '.csv'];
%here ı merge all array as an one array. Then with csvwrite ı transfer these in a csv
newdata = [Input,Ftn_Noise_real,Ftn_Noise_imag,After_Matchfilter_real,After_Matchfilter_imag];
csvwrite(filename,newdata);
end

如果您使用的是R2019a或更新版本,则可以使用。它还支持附加到现有文件:

filename = 'test.csv';
if (exist(filename, 'file'))
    delete(filename);
end
for i=1:4
    A = randi(3, 4);
    writematrix(A, filename, 'WriteMode', 'append');
end
readlines('test.csv')
但更好的方法是将所有矩阵合并为一个矩阵,然后通过只调用一次
csvwrite
writematrix
来写入整个数据:

r = 3; % No. of rows
c = 4; % No. of columns
n_iter = 4; % No. of iterations
B = zeros(r*n_iter, c); % pre-allocating B matrix
for ii=1:n_iter
    A = randi(10, r, c);
    B(((ii-1)*r)+(1:r), :) = A; % appending A to the end of B
end
writematrix(B, filename);
readlines('test.csv') % test contents

谢谢,根据我的代码进行了一些修改。