How can I make imageDatastore sort naturally?
Show older comments
When I use imageDatastore to store files, the files are sorted according to their names like so:

This is how MATLAB sorts them by default. How can I make it store the files in an image datastore in the correct order ('1,5,10,15,20' rather than '1,10,15,20,5')? Or is there a way to create a new datastore with the sorted filenames? I understand that sort_nat or natsortfiles could be used in some way, but I'm not sure how. I can't sort and store the images in any other way(like in a table or directory), it has to be an image datastore.
Accepted Answer
More Answers (1)
yanqi liu
on 8 Oct 2021
3 votes
sir,may be use the 001、002、…… as image filename
3 Comments
Pranay Koppula
on 8 Oct 2021
Stephen23
on 8 Oct 2021
@Pranay Koppula: actually, if you use sufficient leading zeros then sorting by character does resolve this problem, exactly as yanqi liu writes. This is a robust and very efficient solution.
Pranay Koppula
on 9 Oct 2021
Categories
Find more on Shifting and Sorting Matrices 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!