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 日

0 投票

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 件のコメント

Turbulence Analysis
Turbulence Analysis 2022 年 4 月 13 日
Thanks.. Got the below error!!
Error using fileDatastore (line 102)
Function readmatrix does not exist.
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 件)

カテゴリ

ヘルプ センター および File Exchange で Image 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