Eine Lösung zu schaffen ist der erste Schritt. Die Lösung in Ihrem Beitrag funktioniert nur, wenn alle Daten aus demselben Monat und Jahr stammen.
Beispiel:
Wenn Sie diese Termine haben:
'18-May-2017 01:01:36' '18-Jun-2018 22:58:50' '19-Jun-2018 01:52:32'
Ihr Code ordnet sie wie folgt an:
'18-Jun-2018 22:58:50' '18-May-2017 01:01:36' '19-Jun-2018 01:52:32'
das ist eindeutig falsch.
Ihr Code kann datetime
wie folgt korrigiert werden (eingeführt in R2014b):
[~, ind] = sort(datetime()); filenames = filenames(ind);
Einzeiler sind überbewertet. Jede Herangehensweise, um es zu einem Einliner zu machen, ist sehr wahrscheinlich schlechter als die vorstehende elegante Herangehensweise. Wenn Sie es nur in eine Zeile schreiben möchten, schreiben Sie es in eine Zeile als:
[~, ind] = sort(datetime()); filenames = filenames(ind);
oder erstellen Sie eine Funktion, die das ausführt, und rufen Sie diese Funktion auf
function filenames = sortbydate(filenames) [~, ind] = sort(datetime()); filenames = filenames(ind); end
und rufen Sie diese Funktion auf mit:
filenames = sortbydate(filenames);