how to read list of files in correct sequence.

2 views (last 30 days)
i have a folder containing files (images) named 1,2,....300, when i make filelist of the folder to use the files, matlab use the following sequance 1,10,101,..109,11,110....
how can i make the list in the correct file sequance .
Note: files are images used in image processing.
  5 Comments
Walter Roberson
Walter Roberson on 15 Jul 2016
Do not pass it the directory information: pass it the file names extracted from the directory information. For example,
dinfo = dir('*.tif');
filenames = {dinfo.name};
sorted_filenames = sort_nat_file(filenames);
Stephen23
Stephen23 on 4 May 2021
Your could download my FEX submission natsortfiles, which was written to solve exactly this problem:
S = dir(..);
S = natsortfiles(S);

Sign in to comment.

Answers (3)

Walter Roberson
Walter Roberson on 15 Jul 2016
Edited: Walter Roberson on 15 Jul 2016

Image Analyst
Image Analyst on 15 Jul 2016
See blog discussion of this "Pick of the week": http://blogs.mathworks.com/pick/2014/12/05/natural-order-sorting/

Azzi Abdelmalek
Azzi Abdelmalek on 15 Jul 2016
Edited: Azzi Abdelmalek on 15 Jul 2016
Your names look like this
s=arrayfun(@num2str,1:100,'un',0)
a=sort(s)
To sort them as you want
[~,ii]=sort(str2double(a))
out=a(ii)

Categories

Find more on File Operations in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!