MATLAB: Loop code for images with x1, y1, z1 variables

imageloop

hi all. i cannot solve this issue. briefly, i have a code for image manipulation, however i cannot solve putting it into a loop. for 7 photos in the images folder, i want to read it one by one and after manipulation i want to store the outputs in x1,x2,…x7 , y1,y2,…y7 , z1,z2,…z7. significant part of the code can be seen below.
thank you so much in advance.
for k=1:7
i = imread(sprintf('images/a%d.jpg',k));
.....
im = rgb2gray(i);
....
eval(['x' num2str(i)='double(im)']);
eval(['y' num2str(i)='x(:)']);
eval(['z' num2str(i)='hist(y)']);
end
....
i have also tried the code below with sprintf instead of num2str and yet it haven't worked either.
eval(sprintf('x%d = double(im)', i));
eval(sprintf('y%d = x%d(:)', i));
eval(sprintf('z%d = hist(y%d)', i));

Best Answer

i has not been defined yet when you did:
i = imread(sprintf('images/a%d.jpg',i));
perhaps you meant
rgbImage = imread(sprintf('images/a%d.jpg', k));