I am trying to gather all the .bmp files in a folder and store them in a cell array so they can be shuffled and shown at the appropriate time in a task (using Psychtoolbox3). I am using the following code provided in a previous question https://www.mathworks.com/matlabcentral/newsreader/view_thread/267529.
[listOfFiles, folder] = uigetfile ({'*.jpg';'*.bmp';'*.tiff'}, '
Select your image ', 'MultiSelect', 'on');
for j=1:length(listOfFiles)
fullFileName = fullfile(folder, listOfFiles{j});
imageArray = imread(fullFileName);
[rows columns numberOfColorBands] = size(imageArray);
figure;
imshow(imageArray);
message = sprintf('%s is %d by %d', fullFileName, rows, columns);
disp(message);
end
The only change I want to make is to automatically pull all the .bmp files instead of the user selecting them using uigetfile. I've tried a lot of options, such as using dir and converting to cell using strcat, using dir and converting using {___.name}, etc. but have had no luck. Most of the errors tell me there are too many output arguments, referring to [listOfFiles, folder], but if I alter this variable name, it does not register the name as a cell array.
I am using Matlab R2017a.
Any help would be greatly appreciated!!

 채택된 답변

Jan
Jan 2017년 8월 14일
편집: Jan 2017년 8월 14일

1 개 추천

DirList = dir(fullfile(folder, '*.bmp'));
listOfFiles = {DirList.name};
for j=1:length(listOfFiles)
fullFileName = fullfile(folder, listOfFiles{j});
...

댓글 수: 1

Guillaume
Guillaume 2017년 8월 15일
편집: Guillaume 2017년 8월 15일
The loop is not even needed. fullfile happily works on cell arrays:
DirList = dir(fullfile(folder, '*.bmp'));
fullFileName = fullfile(folder, {DirList.name});

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

질문:

2017년 8월 14일

편집:

2017년 8월 15일

Community Treasure Hunt

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

Start Hunting!

Translated by