Azzera filtri
Azzera filtri

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

1 visualizzazione (ultimi 30 giorni)
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

Risposte (1)

Walter Roberson
Walter Roberson il 22 Gen 2019
Modificato: Walter Roberson il 22 Gen 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);

Categorie

Scopri di più su Data Type Conversion in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by