Read files from multiple folders
    18 views (last 30 days)
  
       Show older comments
    
    Turbulence Analysis
 on 13 Apr 2022
  
    
    
    
    
    Edited: Image Analyst
      
      
 on 13 Apr 2022
            Hi,
Lets say I have some 100 .dat files in each subfolder A, B , C , D that is placed inside the folder named Data. Here, I would like to perform operation in a one go, rather than running sperately for each subfolder. Is there a way to do this, does it requires parallel processing for this task ??
For e.g.
read data from subfolder A
for i = 1:1:100
    some operation
end 
read data from subfolder B
for i = 1:1:100
    some operation
end
0 Comments
Accepted Answer
  Image Analyst
      
      
 on 13 Apr 2022
        Use a fileDatastore:
topLevelFolder = pwd;       %  folder in which your images exists
filePattern = fullfile(topLevelFolder, '*.dat');
ds = fileDatastore(filePattern, 'ReadFcn', @readmatrix)         %  Creates a datastore for all images in your folder
allFileNames = {ds.Files{:}}'
for k = 1 : numel(allFileNames)
    thisFileName = allFileNames{k};
    fprintf('Processing %s.\n', thisFileName);
    % Do something with it.
end
If you have the Parallel Processing Toolbox you can use parfor instead of for.
3 Comments
  Image Analyst
      
      
 on 13 Apr 2022
				
      Edited: Image Analyst
      
      
 on 13 Apr 2022
  
			You must have a version older than r2019a.  Just use csvread instead of readmatrix and it should work, as long as you have a version later than 2016a.  
ds = fileDatastore(filePattern, 'ReadFcn', @csvread);
Or you can also try it with dir using two stars.
topLevelFolder = pwd;       %  folder in which your data files exist.
filePattern = fullfile(topLevelFolder, '**\*.dat');
fileList = dir(filePattern);
allFileNames = fullfile({fileList.folder}, {fileList.name})
for k = 1 : numel(allFileNames)
    thisFileName = allFileNames{k};
    fprintf('Processing %s.\n', thisFileName);
    % Do stuff with the file, like read the data and process it somehow.
end
More Answers (0)
See Also
Categories
				Find more on File Operations 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!
