Clear Filters
Clear Filters

How can I display multiple images in one figure window using for loop?

10 views (last 30 days)
Is there a way for me to be able to read/display 100 images (0001.png - 0100.png) without having to type them all manually like below? All 100 images are in a folder if that helps (C:\Users\pittsl\Desktop\Matlab\train\cup).
files = {'0001.png', '0002.png','0003.png','0004.png','0005.png',};
for K = 1 : 5
this_image = imread(files{K});
ax = subplot(1, 5, K);
imshow(this_image, 'Parent', ax);
end

Accepted Answer

Adam Danz
Adam Danz on 30 Jul 2019
Edited: Adam Danz on 20 Apr 2022
% Inputs: folder and file extension
% Will plot all files with the chosen extension in the chosen folder
folder = 'C:\Users\pittsl\Desktop\Matlab\train\cup';
ext = 'png'; %extension, no dot
% Get list of all files
content = dir(folder);
allfiles = {content.name};
isExt = endsWith(allfiles,['.',ext],'IgnoreCase',true); % req. r2016b or later https://www.mathworks.com/help/matlab/ref/endswith.html
files = allfiles(isExt);
% Determine subplot layout
nImages = numel(files);
dimN = ceil(sqrt(nImages));
dimM = ceil(nImages/dimN);
nrows = min(dimN, dimM);
ncols = max(dimN, dimM);
% Plot them
for K = 1:nImages
this_image = imread(fullfile(folder,files{K}));
ax = subplot(nrows,ncols, K);
imshow(this_image, 'Parent', ax);
end
For MATLAB releases prior to R2016b, replace the endsWith function with this,
isExt = ~cellfun('isempty',regexpi(allfiles,['.',ext,'$']));
Alternative
To show thumbnail images of all image files within a folder or images with specified extensions, see showImageThumbnails from the File Exchange. Image tiles will be numbered and a table is returned that defines the path to each tile.
folder = 'C:\Users\pittsl\Desktop\Matlab\train\cup';
ext = '.png'; % include dot
showImageThumbnails(folder, ext)
  13 Comments
Stephen23
Stephen23 on 22 Apr 2022
Simpler:
folder = 'C:\Users\pittsl\Desktop\Matlab\train\cup';
ext = 'png'; %extension, no dot
% Get list of all files
content = dir(fullfile(folder,sprintf('*.%s',ext)));
files = {content.name};
.. etc.

Sign in to comment.

More Answers (0)

Categories

Find more on Introduction to Installation and Licensing 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!