Opening A directory of folders and accessing data within each folder
170 views (last 30 days)
Show older comments
Commented: Image Analyst on 9 Aug 2018
I'm trying to write a batch code which does the following:
Open directory In a loop open each folder in the directory In a loop open each file with a '.res' file type in the folder Perform functions on each file Plot the data from each file Plot the data on top of the file within each folder
Plot the data from the next folder in a different figure
So far I have something like this, although its not really working
mainFolder = dir(foldername);
figNum = 1;
for k = 1:numel (mainFolder.name)
subFolder = dir(mainFolder(k).name,'*.res')
for j = 1:numel (subFolder.name)
rawData = importdata(subFolder(j).name,' ');
timeData = rawData(:,1);
ampData = rawData(:,2);
%other function stuff
figNum = figNum +1;
Any input would be greatly appreciated!
Image Analyst on 17 Jan 2014
Attached is s simple script which recurses into a folder and all subfolders of it looking for files of a certain filename pattern.
Image Analyst on 9 Aug 2018
Brian, sorry - you're incorrect -- semicolon is what you want, not colon. Just look at the remain variable and you'll see that a semicolon is what delimits folder names. The colon is after drive letters and is not a delimiter - it's part of the full path of the folder.
Anyway, in newer versions they have strsplit, as well as a dir() that will recurse subfolders on its own. So my code I posted here is obsolete.
More Answers (1)
Sean de Wolski on 17 Jan 2014
Both for-loop signatures look like the following, which is likely invalid.
for k = numel mainFolder.name
What you likely want is
for k = 1:numel(mainFolder)
I.e. the number of folders you wish to loop over (the size of the mainFolder struct).
Find more on Large Files and Big Data 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!