## 2 nearest neighbors of each side of vector

Asked by eden kisos

### eden kisos (view profile)

on 17 Nov 2019 at 17:21
Latest activity Commented on by eden kisos

### eden kisos (view profile)

on 17 Nov 2019 at 19:56
Accepted Answer by Image Analyst

### Image Analyst (view profile)

I have two vectors:
A= 2 8 3 6 1 9 5 4 3 7 10 %ranperm(10)
i=1:10
I would like to find for every i , the two closest neighbors of each side.
For example:
for i=1
neighbors= 2,8
for i=2
neighbors= 2,3,6
for i=3
neighbors= 2,8,6,1
for i=10
neighbors= 4,3
...

### Image Analyst (view profile)

Answer by Image Analyst

### Image Analyst (view profile)

on 17 Nov 2019 at 17:33

This will do it:
A= [2 8 3 6 1 9 5 4 3 7 10] %ranperm(10)
for k = 1 : length(A)
firstIndex = max(k-1, 1);
lastIndex = min(k+1, length(A));
neighbors{k} = A(firstIndex:lastIndex);
end
celldisp(neighbors) % Display in command window.

eden kisos

### eden kisos (view profile)

on 17 Nov 2019 at 19:51
I'm sorry, but I made a mistake. I'll write it down again.
A= 2 8 3 6 1 9 5 4 7 10 %ranperm(10)
i=1:10
I would like to find for every i , the two closest neighbors of each side.
For example:
for i=1
neighbors= 8,3
for i=2
neighbors= 2,3,6
for i=3
neighbors= 2,8,6,1
for i=10
neighbors= 4,7

### Steven Lord (view profile)

Answer by Steven Lord

### Steven Lord (view profile)

on 17 Nov 2019 at 18:12

Are there specific operations you want to perform on those neighbors? The moving statistics functions on this documentation page may perform those operations directly (if you want to add them see movsum, for example) or serve as building blocks to help you perform those operations.

eden kisos

### eden kisos (view profile)

on 17 Nov 2019 at 19:56
thank you, I am making some modifications to what is being received but the rest I already know how to do. I got stuck with the neighbors (especially the edges)