Load Files from folder based on file number

4 views (last 30 days)
Doron Joffe
Doron Joffe on 22 Nov 2021
Edited: Stephen on 22 Nov 2021
I have 100 csv files in a folder. Each is labeled with a totally random number such as 233505.csv. I need to load 3 specific files. I originally tried
uigetfile('.csv','MultiSelect','on')
This worked but it required me to select the files I want. I am now trying using a datastore function so that I dont need to manually select the files. However I dont think the name-value pair "Filenames" is correct. Is there an alternative method. The Dir function only allows me to specify a single file.
ds = tabularTextDatastore("C:\Users\e\Player","FileExtensions",[".csv"],"Filenames",["233505.csv","45067.csv"]);
  3 Comments
Stephen
Stephen on 22 Nov 2021
"I want to select them based on a feature of the file name."
And how will you select them? Or, more importantly, how do you plan on telling MATLAB which ones you have selected?
Are you going to tell MATLAB which files you want by writing down the names of three files? Or specifying some property of the filename/etc that can be uniquely matched to exactly 3 files? Or are you going to pick 3 random files? Or read the filenames from another file? Or get the user to specify them? Or something else... ?
"For example from the list, I want to load only the files with the names, 2334.csv, 1243.csv and 13245.csv."
By "list" do you mean the list of filenames returned by DIR ? Or your own "list" of files that you want to process?

Sign in to comment.

Answers (1)

KSSV
KSSV on 22 Nov 2021
csvFiles = dir('*.csv') ; % you are in the folder where csv files are present
N = length(csvFiles) ;
for i = 1:N
thisFile = csvFiles(i).name
% do what you want
end

Community Treasure Hunt

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

Start Hunting!