Get pairs of indices for neighboring elements in an array.


Updated 10 Oct 2015

View License

This function takes a size vector [m n] and a connectivity scalar (4 by default, or 8) and returns a p-by-2 array containing the linear indices of all pairs of neighboring elements in an m-by-n array. Note that p does not equal (m*n*conn) because border elements do not have as many neighbors as interior elements.
I created this function because I needed to transform an image into a graph, with edges in the graph for neighboring pixels only. This function allows me to quickly get the linear indices for all edges in that graph.

This function was inspired by a blog post from Steve Eddins found here:

ind = neighbor2ind([3,4]);

I = imread('cameraman.tif');
ind = neighbor2ind(size(I),8);

Cite As

Matthew Eicholtz (2023). neighbor2ind (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2015a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

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

Start Hunting!
Version Published Release Notes