How to re-order a string array?

10 visualizaciones (últimos 30 días)
james Green
james Green el 11 de Abr. de 2022
Comentada: Paul el 11 de Abr. de 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')

Respuesta aceptada

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

Iniciar sesión para comentar.

Más respuestas (1)

DGM
DGM el 11 de Abr. de 2022
  1 comentario
james Green
james Green el 11 de Abr. de 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.

Iniciar sesión para comentar.

Categorías

Más información sobre Shifting and Sorting Matrices en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by