How to re-order a string array?

11 vues (au cours des 30 derniers jours)
james Green
james Green le 11 Avr 2022
Commenté : Paul le 11 Avr 2022
currently the files are orderd like this, the value increasing by 30 each time up to 1830:
however, with the code i've used, matlab orders the files like this:
is there any way i can sort the files to match the original?
dirName = pwd;
files = dir( fullfile(dirName,'*.txt') );
files = {files.name}';
files = sortrows(files,'ascend')

Réponse acceptée

Stephen23
Stephen23 le 11 Avr 2022
Modifié(e) : Stephen23 le 11 Avr 2022
P = pwd;
S = dir(fullfile(P,'*.txt'));
C = {S.name};
[~,X] = sort(str2double(regexp(C,'\d+','match','once')));
C = C(X);
  1 commentaire
Paul
Paul le 11 Avr 2022
Or
C = string{S.name});
[~,X] = sort(double(extractBetween(C,"_",".txt")));
C = C(X);
for those of us who can't get our minds around patterns and regexp.

Connectez-vous pour commenter.

Plus de réponses (1)

DGM
DGM le 11 Avr 2022
  1 commentaire
james Green
james Green le 11 Avr 2022
thanks that works perfectly, however this is part of an uni assignment which i can only subbmit one .m file for, so i dont think i can use this. im not very familiar with file exchange is there a way to get around this.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Shifting and Sorting Matrices dans Help Center et File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by