Matlab: alle Dateien aus Ordner darstellen

Öffnen und Darstellen aller Dateien aus einem Ordner

(English) In diesem Post wird beschrieben, wie aus einem Ordner mit Matlab alle Dateien geöffnet und geplottet werden können.
Zuerst werden alle Datein des Formats  *.txt geladen und in files gespeichert.

files = dir('*.csv');

Dann werden alle Dateien in eine Variable gespeichert. Für value = 2 wird beispielsweise nur jede 2. Datei genommen.

for i = 1:1:length(files)/value
    fid3{i}=files(i).name;
end

Diese Dateien sind noch nicht sortiert und können nun sortiert werden. Hierfür muss "natsortfiles" aus Matlab-Exchange heruntergeladen werden:

fid3 = natsortfiles(fid3)
for i = 1:value:length(files) 
    fid = fopen(fid3{i});
    daten = textscan(fid,'%f %f','delimiter',',','headerlines',0');
    q1(:,i/value) = daten(1);
    q2(:,i/value) = daten(2);
end
fclose(fid);

Im "textscan"-Befehl wird mit 'headlines',0 die Anzahl der Zeilen der .txt Datei gelöscht. Die Daten aus Spalte 1 werden in q1 und aus Spalte 2 in q2 gespeichert.

Nun werden die Dateien geöffnet und als Matrix abgespeichert. aus q1 und q2 kann nun noch ein Bereich ausgesucht werden und als x und y gespeichert werden:

%convert cell to matrix
q1=cell2mat(q1);
q2=cell2mat(q2);
%take a defined area
x = q1(650:1150,:);
y = q2(650:1150,:);

Nun können die Daten wie folgt geplottet werden. Dabei wird die Funktion ColSpec genutzt.

fig = figure(1)
hold on;
for i=1:1:length(files)
     h(i)=plot(x(:,i),y(:,i),'Color',ColSpec(length(x),i);
 end

Nun können noh die Daten durchnummeriert werden und dann in der Legende dargestellt werden:

leg = num2str([1:1:length(files)]');
leg = strcat('Datei', leg);
legend(h2,leg,'location','EastOutside');





Kommentare

Beliebte Posts aus diesem Blog

Matlab: Fehlergeraden

Matlab: 3D Kartesisches Grid, Vektoren mit Transformation/Rotation

Matlab: Farbspektrum für Plots