Rename multiple files by substituting specific characters

Hi all,
i have multiple .csv files, ordered and named following this scheme:
file.0.csv, file.1.csv, file.2.csv, etc.
i do have a problem while using:
files = dir('*.csv');
if I give the command:
files.name
I get this wrong order:
file.0.csv, file.1.csv, file.10.csv, file.100.csv, file.101.csv, etc.
I suppose the problem is the dot after "file", so I'd like to rename all files by substituting the dots with something else (underscore for example) to fix the issue.
Anyone can help me?
Thanks in advance

 Accepted Answer

files = dir('*.csv');
[~,ii] = sort(cellfun(@(x)sscanf(x,'file.%d.csv'),{files.name}));
file_sorted = files(ii);

More Answers (0)

Categories

Find more on Verification, Validation, and Test in Help Center and File Exchange

Asked:

EK
on 6 Dec 2013

Commented:

EK
on 6 Dec 2013

Community Treasure Hunt

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

Start Hunting!