file list when "dir" to import data

4 visualizaciones (últimos 30 días)
Sunghwan Kim
Sunghwan Kim el 29 de Jun. de 2022
Comentada: Image Analyst el 30 de Jun. de 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.

Respuesta aceptada

Stephen23
Stephen23 el 29 de Jun. de 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 comentarios
Sunghwan Kim
Sunghwan Kim el 30 de Jun. de 2022
Great Thanks.
Image Analyst
Image Analyst el 30 de Jun. de 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.)

Iniciar sesión para comentar.

Más respuestas (1)

Image Analyst
Image Analyst el 29 de Jun. de 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

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