List every vertices neighbor indices - MATLAB Cody - MATLAB Central

Problem 45261. List every vertices neighbor indices

Difficulty:Rate

Input T is a triangulation.

The purpose of this function is to query at once the cell array N of all vertex neighbor indices... of every vertices, nothing less (!)

Output N must be a cell array since of course each vertex may have a different number of neighbors.

For example, for an input filled octahedron whom triangulation is

T = [1, 2, 3;...
     1, 3, 4;...
     1, 4, 5;...
     1, 2, 5;...
     2, 3, 6;...
     3, 4, 6;...
     4, 5, 6;...
     2, 5, 6;...
     2, 3, 4;...
     2, 4, 5;...
     1, 2, 4;...
     2, 4, 6],

then the output N is a 6x1 cell array of integers row vectors, such that :

N(1,1) = {[2, 3, 4, 5]};
N(2,1) = {[1, 3, 4, 5, 6]};
N(3,1) = {[1, 2, 4, 6]};
N(4,1) = {[1, 2, 3, 5, 6]};
N(5,1) = {[1, 2, 4, 6]};
N(6,1) = {[2, 3, 4, 5]};

Indeed vertex #2 is part of triangles [1, 2, 3], [1, 2, 5], [2, 3, 6], [2, 5, 6], [2, 3, 4], [2, 4, 5], [1, 2, 4], and [2, 4, 6], it then admit all the other vertices as neighbors ([1, 3, 4, 5, 6]).

Hypothesis / conditions :

  • a vertex is the neighbor of another if they are linked with an edge in at least one same triangle. A vertex is not neighbor of itself.
  • Output N row order is crucial since row number actually corresponds to the vertex id / index.
  • Output N cells content order doesn't matter, but it doesn't admit any duplicated index / value.

Tip : solving my previous problems, and especially query_vertex_neighbors will help you to fully understand and solve this one.

NB : the question of unreferenced vertices is not tacled here. We just supposed there are not.

Good work Matlab-bro ! :)

Solution Stats

59.09% Correct | 40.91% Incorrect
Last Solution submitted on Jan 14, 2025

Problem Comments

Solution Comments

Show comments
R2025a Pre-release highlights
This topic is for discussing highlights to the current R2025a Pre-release.
13
5

Problem Recent Solvers19

Suggested Problems

More from this Author9

Community Treasure Hunt

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

Start Hunting!
Go to top of page