Ich habe 3 TXT-Dateien s1.txt, s2.txt, s3.txt
.Jede haben das gleiche Format und die Anzahl der Daten.Ich möchte nur die zweite Spalte von jeder der 3 Dateien in eine Datei zu kombinieren. Bevor ich die Daten kombinieren, ich sortiert sie nach der ersten Spalte:So speichern Sie Daten in. TXT-Datei in MATLAB
unsortierten Datei: 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
Sortiert Datei: 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
Hier ist der Code ich habe bisher:
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);
Wie kann ich die Ausgabe in der neuen TXT-Datei in diesem Format erhalten?
23 10 11
55 33 22
32 32 28
22 11 11
anstelle dieses Formats?
23
55
32
22
10
33
32
11
11
22
28
11
Danke sehr viel ... Code sind so sauber und ordentlich und es funktioniert !! :) Du hast gerade meinen Tag gemacht! Danke .. – Jessy
@Jessy: Der Code kann besser gemacht werden. Ich habe dem Eingangsteil nicht viel Aufmerksamkeit geschenkt. Zum Beispiel brauchen Sie auch nicht cell2mat, verwenden Sie einfach den Parameter 'CollectOutput' (true) in textscan. Ich würde auch Validierungscode hinzufügen, um sicherzustellen, dass alle Eingabedateien die gleiche Anzahl von Zeilen haben (oder der Code wird nicht funktionieren). – yuk
@Jessy, ich habe den Code aktualisiert, als ich Zugang zu MATLAB bekomme. – yuk