How to use for loop to read one file in multiple folders?

7 views (last 30 days)
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?

Answers (2)

Image Analyst
Image Analyst on 7 Oct 2018
Use dir(). See attached example.
  1 Comment
Image Analyst
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

Sign in to comment.


Stephen23
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:

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!