how to ignore an index error?

8 visualizaciones (últimos 30 días)
Laura Alvarez
Laura Alvarez el 14 de Dic. de 2019
Editada: Laura Alvarez el 14 de Dic. de 2019
I have this code and I want to ignore the error when the index exceeds array bounds or when they are 0.
for j=1:N
for i=1:N
u(i,j)=(c(i,j)+u(i-1,j)+u(i+1,j)+u(i,j-1)+u(i,j+1))/4
end
end
I just want to ignore u(0, j), u(N + 1, j), u(i, 0) and u(i, N + 1) or assign them the value 0.
Thank you so much!
  1 comentario
dpb
dpb el 14 de Dic. de 2019
Editada: dpb el 14 de Dic. de 2019
There is no 0-index array element so assigning it any value, zero or not, is out of the question.
You could put the expression in a try...catch...end construct but reconstructing the expression to maintain arrays in bounds would be the better solution.
filter2() possibly would be of use here altho the expression appears somewhat unusual with five terms dividing by four...

Iniciar sesión para comentar.

Respuesta aceptada

dpb
dpb el 14 de Dic. de 2019
H=[0 1 0;1 0 1; 0 1 0]; % filter coefficients
u(2:end-1,2:end-1)=(c(2:end-1,2:end-1)+filter2(H,u,'valid'))/4; % apply filtered u to c

Más respuestas (0)

Categorías

Más información sobre Matrices and Arrays en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by