MATLAB: Problem using for loop

forloop

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?

Best Answer

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
Related Question