Read files from multiple folders

46 ビュー (過去 30 日間)
Turbulence Analysis
Turbulence Analysis 2022 年 4 月 13 日
編集済み: Image Analyst 2022 年 4 月 13 日
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

採用された回答

Image Analyst
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
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
Turbulence Analysis
Turbulence Analysis 2022 年 4 月 13 日
It's working perfectly with two stars !!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeImage Processing and Computer Vision についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by