How to use for loop to read one file in multiple folders?
7 views (last 30 days)
Show older comments
I currently have a folder with 365 subfolders in it. Named Day_1, Day_2,....Day365. In each subfolder, there is a file named temp.txt. I want to read this file and extract data from all the subfolders. I can't figure out how to successfully do this with a loop. Any suggestions?
0 Comments
Answers (2)
Image Analyst
on 7 Oct 2018
Use dir(). See attached example.
1 Comment
Image Analyst
on 7 Oct 2018
You haven't arrived at a solution yet? Alright, here is a simple example:
% Get a list of all files named temp.txt
% in the current folder or folders below it.
files = dir('**/temp.txt') % R2016b or later only
for k = 1 : length(files)
% Get the filename.
fullFileName = fullfile(files(k).folder, files(k).name)
thisData = importdata(fullFileName); % Read it in with some function.
% Now do something with thisData. Analyze it.
end
Stephen23
on 7 Oct 2018
Edited: Stephen23
on 7 Oct 2018
This should get you started:
D = 'directory where the subfolders are stored';
C = cell(1,365);
for k = 1:365
F = sprintf('Day_%d',k);
C{k} = csvread(fullfile(D,F,'temp.txt'));
end
Change csvread to an appropriate function that reads your text file. Read more:
0 Comments
See Also
Categories
Find more on Search Path in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!