Clear Filters
Clear Filters

How use imread in a loop

18 views (last 30 days)
Yunwei
Yunwei on 23 Feb 2023
Commented: DGM on 23 Feb 2023
Hello everyone,
i am trying to use imread to read multiple images in a for loop.
path='Z:\collect_data';
for t=1:length(nan_rows)
image_test=imread([path,'nan_rows' (t)]);
%further coding
end
the 'nan_rows' here is a string array.
I want to read the images which the file names are stored in the array.
Does anyone know how to do it?
Thanks a lot in advance!

Accepted Answer

VBBV
VBBV on 23 Feb 2023
Edited: VBBV on 23 Feb 2023
image_test{t}=imread([path,'nan_rows' num2str(t)])
  7 Comments
DGM
DGM on 23 Feb 2023
According to the question, the filenames are in a string array, so I don't know why we're generating number suffixes at all. If we are to generate number suffixes, then we'd actually need to know how they're formatted.
% you have your base path
fprefix = fullfile(matlabroot,'toolbox','images','imdata');
% and you say you have a string array of filenames
fnames = ["cameraman.tif" "tire.tif" "coins.png" "strawberries.jpg"];
nfiles = numel(fnames);
image_test = cell(nfiles,1); % preallocate
for k = 1:nfiles
image_test{k} = imread(fullfile(fprefix,fnames(k)));
end
montage(image_test)
Build the path with fullfile(). If you have to programmatically construct the filename, using sprintf() is simpler and more readable imo.
Yunwei
Yunwei on 23 Feb 2023
That's exactly what l need.
Thank you so much for your help!

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!