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

16 次查看(过去 30 天)
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?

回答(2 个)

Image Analyst
Image Analyst 2018-10-7
Use dir(). See attached example.
  1 个评论
Image Analyst
Image Analyst 2018-10-7
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
Stephen23 2018-10-7
编辑:Stephen23 2018-10-7
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:

类别

Help CenterFile Exchange 中查找有关 File Operations 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by