Read files from multiple folders
    18 ビュー (過去 30 日間)
  
       古いコメントを表示
    
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 件のコメント
採用された回答
  Image Analyst
      
      
 2022 年 4 月 13 日
        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 件のコメント
  Image Analyst
      
      
 2022 年 4 月 13 日
				
      編集済み: Image Analyst
      
      
 2022 年 4 月 13 日
  
			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
その他の回答 (0 件)
参考
カテゴリ
				Help Center および File Exchange で File Operations についてさらに検索
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

