Ho 3 file txt s1.txt, s2.txt, s3.txt
. Ognuno ha lo stesso formato e numero di dati. Voglio combinare solo la seconda colonna di ciascuno dei 3 file in un unico file. Prima di combinare i dati, mi si è occupata in base alla prima colonna:Come salvare i dati nel file .txt in MATLAB
indifferenziati di file: s1.txt s2.txt s3.txt
1 23 2 33 3 22
4 32 4 32 2 11
5 22 1 10 5 28
2 55 8 11 7 11
file ordinato: s1.txt s2.txt s3 .txt
1 23 1 10 2 11
2 55 2 33 3 22
4 32 4 32 5 28
5 22 8 11 7 11
Ecco il codice che ho finora:
BaseFile ='s'
n=3
fid=fopen('RT.txt','w');
for i=1:n
%Open each file consecutively
d(i)=fopen([BaseFile num2str(i)'.txt']);
%read data from file
A=textscan(d(i),'%f%f')
a=A{1}
b=A{2}
ab=[a,b];
%sort the data according to the 1st column
B=sortrows(ab,1);
%delete the 1st column after being sorted
B(:,1)=[]
%write to a new file
fprintf(fid,'%d\n',B');
%close (d(i));
end
fclose(fid);
Come posso ottenere l'output nel nuovo file txt in questo formato?
23 10 11
55 33 22
32 32 28
22 11 11
anziché questo formato?
23
55
32
22
10
33
32
11
11
22
28
11
Grazie molto ... il codice sono così pulito e ordinato e funziona !! :) hai appena fatto la mia giornata! Grazie .. – Jessy
@Jessy: il codice può essere fatto meglio. Non ho prestato molta attenzione alla parte di input. Ad esempio, in realtà non hai bisogno di cell2mat, basta usare il parametro 'CollectOutput' (true) in textscan. Aggiungerei anche il codice di convalida per assicurarmi che tutti i file di input abbiano lo stesso numero di righe (o che il codice non funzioni). – yuk
@Jessy, ho aggiornato il codice quando ho accesso a MATLAB. – yuk