Problem using for loop
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Juan Ruiz Osorio
el 10 de Feb. de 2020
Comentada: Juan Ruiz Osorio
el 12 de Feb. de 2020
Hi, I need to do something like this:
a=[1 2 3 4 5 6 7 8 9 10];
for i=1:lenght(a)
for ii=i-2:i+2
x=a(ii);
end
end
I found a solution doing something like this:
a=[1 2 3 4 5 6 7 8 9 10];
for i=1:lenght(a)
if i==1
elseif i==2
elseif i=>3&&i<length(a)-2
elseif i==9
elseif i==10
end
end
I need to do the iteration only in the range +- 2 of i.The problem is that a(-1) ,a(0),a(11) and a(12) doesn't exist . . Is there any simple way to solve that problem without using the if conditions?
2 comentarios
JESUS DAVID ARIZA ROYETH
el 10 de Feb. de 2020
qué quieres hacer específicamente?
what do you want to do specifically?
Respuesta aceptada
Stephen23
el 12 de Feb. de 2020
a = 1:10;
n = numel(a);
for kk = 1:n
for ii = max(1,kk-2):min(n,kk+2)
x = a(ii);
end
end
Más respuestas (1)
Akira Agata
el 10 de Feb. de 2020
How about limiting the loop from 3 to length(a)-2, like the following?
Also, if your calculation process in the inner loop can be re-written without using for-loop, I would strongly recommend doing so.
for k = 3:lenght(a)-2
for kk = k-2:k+2
% Your calculation process
end
end
Ver también
Categorías
Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!