Filter löschen
Filter löschen

I am not understanding the error "Undefined function or variable all_images" I currently have the following code;

1 Ansicht (letzte 30 Tage)
function stimuli=letters_load(N, randord)
dirname= 'C:\Users\User\Documents\MATLAB\stimuli';
if~exist('N','var')
N=21;
end
if N<1 | N>21
error('Number of images selected is out of range')
end
if~exist('randord','var')
randord=false;
end
d=dir([dirname '*.jpg']);
for i=1:length(d)
file=[ dirname d(i).name ];
all_images{i}=imread(file);
end
if randord
idx=randperm(21);
img = all_images(idx(1:N));
else
img = all_images;
end

Antworten (1)

Walter Roberson
Walter Roberson am 22 Jan. 2019
Bearbeitet: Walter Roberson am 22 Jan. 2019
You only assign into all_images if length(d) is at least 1.
In other words, the result of the dir() was empty.
Note that the result of
[dirname '*.jpg']
is going to be
'C:\Users\User\Documents\MATLAB\stimuli*.jpg'
You should switch to using fullfile():
fullfile(dirname, '*.jpg')
also you should pre-allocate:
all_images = cell(length(d), 1);

Kategorien

Mehr zu Data Type Conversion finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by