Index exceeds array bounds error in nested for loop

Hi,
When I run a script, I get the following error:
"Index exceeds array bounds.
Error in Test1 (line 12)
B{j} = imadd(A{x},A{x+1});"
Both the arrays are of the same dimensions. I am trying to add 2 consecutive images and then fusing the resulting images. Where am I going wrong and how do I fix this?
Here is the code:
N = 8; %Number of Images
i = N - 1; %Number of iterations needed
A = cell(1,N); %Input array of images
B = cell(1,N); %Holds result of added images
Image = imread('1.png');
for z = 1:8
A{z} = imread(sprintf('%d.png',z));
end
if (i~=0)
for x=1:1:i
for j=1:1:(N/2)
B{j} = imadd(A{x},A{x+1});
x = x+2;
end
end
for y=1:1:(N/2)
Image = imfuse(Image,B{y},'blend');
end
else
disp('Error: Minimum of 2 images needed');
end

1 comentario

Ignoring the fact that x goes out of bound indeed as pointed out by Alex Mcaulley, the double for loops doesn't make any sense.
for x = 1:i
for j = 1:N/2
B{j} = something;
end
end
At x=1, you fill B{1:N/2} with some values. At x=2, you overwrite all these values with possibly new ones, etc. At the end, the code is simply equivalent to
x = i; %what badly named variables these are!
for j = N/2
B{j} = something
end

Iniciar sesión para comentar.

 Respuesta aceptada

Alex Mcaulley
Alex Mcaulley el 8 de Abr. de 2019
Movida: Voss el 3 de En. de 2024
The length of A is 8. In this loop
for x=1:1:i
for j=1:1:(N/2)
B{j} = imadd(A{x},A{x+1});
x = x+2;
end
end
x is going upper than 8, then gives an error.

2 comentarios

Swetha Varadharajan
Swetha Varadharajan el 8 de Abr. de 2019
Movida: Voss el 3 de En. de 2024
Yes, I see it now.
Thanks for your help!
Adam Danz
Adam Danz el 8 de Abr. de 2019
Movida: Voss el 3 de En. de 2024
@Alex Mcaulley, you could move your comment to the answers section. That way the question appears as answered.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Preguntada:

el 8 de Abr. de 2019

Movida:

el 3 de En. de 2024

Community Treasure Hunt

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

Start Hunting!

Translated by