Store filename in cell array

2 次查看(过去 30 天)
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
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 个)

类别

Help CenterFile Exchange 中查找有关 Image display and manipulation 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by