Verfasst am: 26.01.2015, 00:32
Titel: Reihenfolge beim Einlesen von Dateien mit Nummerierung
Liebe Community!
Mit dir() lese ich nummerierte Dateien aus einem Pfad ein. Leider wird dabei die Reihenfolge verändert. Diese Dateien werden später ausgewertet, die Reihenfolge ist dabei jedoch wichtig.
Eine Möglichkeit besteht sicherlich darin, erst die Dateien mit den kürzeren Dateinamen einzulesen. Gibt es eine einfachere Lösung dafür, die Dateien in der richtigen Reihenfolge einzulesen?
Da ich auch nicht weiß wie man eine andere Sortierung einstellt, würde ich es selber umsortieren:
Super, vielen Dank für deine Idee. Ich habe sie übernommen, um Dateien erst ihrer Länge nach aufzuteilen, und danach wieder zusammen zu fügen. Das Skript habe ich so verallgemeinert.
Wenn ich beispielsweise alle Dateien im Ordner mit ALT+A markiere und so bis auf die automatisch vergebene laufende Nummer gleich bennene, werden sie wie gewünscht sortiert, bei mir getestet bis 15000 Dateien.
for ii=1:(max(sz)-min(sz)+1)% Anzahl Schleifen ist Differenz zw längstem und kürzestem Namen.
liste_idx(:,1)=eq(min(sz)+ii-1,sz(:,1)); % Indexierung der Namen mit gesuchter Länge
A=find(liste_idx(:,1)); % Übertragen der Gefundenen Namen in Array
anz_find=anz_find+length(A); % Zählen der verglichenen Namen
if ii == (max(sz)-min(sz)+1)% Letzter Durchgang if anz_find~=size(NAMES,1)% Fehler, falls nicht alle Namen betrachtet wurden. error('Fehler in Länge eines Arrays') end end
% Namen gesuchter Länge in cell schreiben und sortieren
Names_zw=cell(0,0);
for mm=1:length(A)
Names_zw(size(Names_zw,1)+1,1)=NAMES(A(mm));
end sortrows(Names_zw,1);
% Sortierte Namen in Names_new schreiben
Names_new=[Names_new;Names_zw];
end
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.