MATLAB Answers


Find specific files based on sections of file name

Asked by Robert
on 12 Jan 2018
Latest activity Commented on by Walter Roberson
on 19 Jul 2019 at 22:08
I want to generate an analysis using .csv files. How could I make a search to load only files that have specifics sections in the file name? Like this example, assuming folder AA has files:
But just read files with the section 'CAN' and the condition that the last 3 numbers on file name (sample number) have to be between 0 and 10 (or 000 and 010), so I can only download the files:
For a few files this is not a problem, but for thousands of files (as I have) it gets complicated.

  1 Comment

Sorry, I forgot to add that I also would like to make copies of those files and save them to a folder named BB.

Sign in to comment.

1 Answer

Answer by Kris Fedorenko on 12 Jan 2018
 Accepted Answer

Function dir with a wildcard (*) might be somewhat helpful. For example
fstruct = dir('*_CAN_*.csv')
would return a structure of all files with a .CSV extension containing "_CAN_" as part of their names.
For only getting the numbers between 001 and 010 you would need to do something more involved. You might consider an if-statement to filter the results of the "dir" command while looping over them. Or maybe you can take a look at Regular Expressions.
Note that
fstruct = dir('*_CAN_00*.csv')
would already return all files containing "_CAN_00" in their name, so one possible ad-hoc workaround would be to do that to get files with _CAN_001, _CAN_002, ..., _CAN_009, and run a separate query for _CAN_010 file


Hi Kris,
I have the save question. After i get the struct which have all files, whats the code of next step if i want to save those files into a new folder? I am a nebby of Matlab. Thank you.

Sign in to comment.