Создание решения - это первый шаг. Решение в вашем посте работает, только если все даты относятся к одному и тому же месяцу и году.
Пример:
Если у вас есть эти даты:
'18-May-2017 01:01:36' '18-Jun-2018 22:58:50' '19-Jun-2018 01:52:32'
ваш код упорядочивает их как:
'18-Jun-2018 22:58:50' '18-May-2017 01:01:36' '19-Jun-2018 01:52:32'
что явно неправильно.
Ваш код может быть исправлен с помощью datetime
(представлен в R2014b) следующим образом:
[~, ind] = sort(datetime()); filenames = filenames(ind);
Однострочники переоценены. Любой подход, чтобы сделать его однострочным, скорее всего, будет хуже, чем вышеупомянутый элегантный подход. Если вы просто хотите написать это в одной строке, то напишите в одной строке как:
[~, ind] = sort(datetime()); filenames = filenames(ind);
или создать функцию, которая делает это, и вызвать эту функцию, т.е.
function filenames = sortbydate(filenames) [~, ind] = sort(datetime()); filenames = filenames(ind); end
и вызвать эту функцию с помощью:
filenames = sortbydate(filenames);