file list when "dir" to import data

3 Ansichten (letzte 30 Tage)
Sunghwan Kim
Sunghwan Kim am 29 Jun. 2022
Kommentiert: Image Analyst am 30 Jun. 2022
I am using "dir" to import .txt filedata. Here is the simple code that I used.
liste = dir('*.txt');
My text files has number in the name. The problem is that dir read the file that has "10" ahead of "2". The file names in the "liste" are listed as follows.
How can I make the "liste" to have the sequentially increasing number in the name?
*1.txt, *2.txt,*3.txt,...
Thanks in advance.

Akzeptierte Antwort

Stephen23
Stephen23 am 29 Jun. 2022
"How can I make the "liste" to have the sequentially increasing number in the name?"
If you cannot change the filenames to use leading zeros then you will need to sort the filenames yourself. The easy way to do that is to download the function NATSORTFILES
and use it like this:
liste = natsortfiles(liste);
  2 Kommentare
Sunghwan Kim
Sunghwan Kim am 30 Jun. 2022
Great Thanks.
Image Analyst
Image Analyst am 30 Jun. 2022
What about both our suggestions to change the way the filenames are created. Would that be a possibility? If so, then you don't need this third-party natsortfiles() function. (I'm guessing not otherwise you would have, and that you got the files already named that from some other person or place.)

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Image Analyst
Image Analyst am 29 Jun. 2022
It's best if you can just add leading zeros when you create the files, like
baseFileName = sprintf('blah blah blah fubar-ROI%3.3d.TXT', yourNumber);
The %3.3d will make sure numbers appear as 001, 002, .... 010, 011, ......200, ..... 999 etc.
If your max number is bigger than 3 digits then use 4.4 or 5.5 or whatever.
Otherwise see

Kategorien

Mehr zu File Operations finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by