How to re-order a string array?

10 Ansichten (letzte 30 Tage)
james Green
james Green am 11 Apr. 2022
Kommentiert: Paul am 11 Apr. 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')

Akzeptierte Antwort

Stephen23
Stephen23 am 11 Apr. 2022
Bearbeitet: Stephen23 am 11 Apr. 2022
P = pwd;
S = dir(fullfile(P,'*.txt'));
C = {S.name};
[~,X] = sort(str2double(regexp(C,'\d+','match','once')));
C = C(X);
  1 Kommentar
Paul
Paul am 11 Apr. 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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

DGM
DGM am 11 Apr. 2022
  1 Kommentar
james Green
james Green am 11 Apr. 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.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Shifting and Sorting Matrices finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by