私はそれが配列として多出力をMATLABcodeを生成しており、それらのすべては、すべての反復のために私は同じ結果を有する、20行と1列が5列:Input
、Ftn_Noise_real
、Ftn_Noise_imag
、After_Matchfilter_real
、After_Matchfilter_imag
(それらのすべては、20行1列を有します) 。次に、この5つの配列をコードブロック内の1つの配列(20行5列)としてマージします。の助けを借りて、この配列をcsvファイルに書き込もうとしていますcsvwrite
。ただし、すべての反復で、前の反復の結果の新しいデータが上書きされます。
すべての反復の出力をマージしたい。たとえば、最初の反復コードは、表示されているデータの画像のようにこれら5つの配列を組み合わせた配列を書き込み、2番目の反復コードは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以降を使用している場合は、を使用できますwritematrix
。また、既存のファイルへの追加もサポートしています。
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')
ただし、より良い方法は、すべての行列を1つの行列にマージしてから、呼び出しcsvwrite
またはwritematrix
1回だけでデータ全体を書き込むことです。
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
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加