Borrar filtros
Borrar filtros

How to sort the order given by 'dir' command ???

11 visualizaciones (últimos 30 días)
Divya
Divya el 7 de Jun. de 2013
Editada: Stephen23 el 18 de Abr. de 2021
I am reading the images from a folder by using the below code
[folder1] = uigetdir();
f=dir(folder1);
for k=1:size(f,1)-2
file_n=f(k+2).name;
end
The images in the folder are "test_base1", "test_base2", .... but the order in which 'dir' taking is "test_base1","test_base10","test_base2".. I understood that the command is taking ascii-betical order.. I have gone through the previous questions and answers. It seems complicated. Can any one give a good solution to sort the order of Images after using "dir"
  1 comentario
Stephen23
Stephen23 el 22 de Feb. de 2016
Editada: Stephen23 el 18 de Abr. de 2021
You could download my FEX submission natsortfiles:
>> S = dir('*.txt');
>> S.name
ans =
'1.txt'
ans =
'10.txt'
ans =
'2.txt'
>> S = natsortfiles(S); % alphanumeric sort by filename
>> S.name
ans =
'1.txt'
ans =
'2.txt'
ans =
'10.txt'

Iniciar sesión para comentar.

Respuesta aceptada

Azzi Abdelmalek
Azzi Abdelmalek el 7 de Jun. de 2013
file={'test_base1','test_base10','test_base2'}
[idx,idx]=sort(cellfun(@(x) str2num(char(regexp(x,'\d*','match'))),file))
new_file=file(idx)
  3 comentarios
Divya
Divya el 8 de Jun. de 2013
I am facing an error with a different input for this expression. For file = {'test_30min1','test_30min10','test_30min2'}; it gives error as follows
??? Error using ==> cellfun
Non-scalar in Uniform output, at index 1, output 1.
Set 'UniformOutput' to false.
I tried giving "regexp(x,'\w*','match')" and many other combinations in this expression. I am not able to get the solution. May i know what is the solution for this??
Divya
Divya el 8 de Jun. de 2013
Hey "regexp(x,'\d*$','match')" is working for this problem. Thanks anyhow

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre File Operations en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by