SOM Toolbox Online documentation



 Calculate to which neighborhood each map unit belongs to relative to
 each other map unit, given the units in 1-neighborhood of each unit.



 For each map unit, finds the minimum neighborhood to which it belongs
 to relative to each other map unit. Or, equivalently, for each map 
 unit, finds which units form its k-neighborhood, where k goes from 
 0 to n. 

 The neighborhood is calculated iteratively using the reflexivity of
     let  N1i  be the 1-neighborhood set a unit i
 and let  N11i be the set of units in the 1-neighborhood of any unit j in N1i
     then N2i  (the 2-neighborhood set of unit i) is N11i \ N1i

 Consider, for example, the case of a 5x5 map. The neighborhood in case of
 'rect' and 'hexa' lattices (and 'sheet' shape) for the unit at the
 center of the map are depicted below: 

   'rect' lattice           'hexa' lattice
   --------------           --------------
   4  3  2  3  4            3  2  2  2  3
   3  2  1  2  3             2  1  1  2  3
   2  1  0  1  2            2  1  0  1  2
   3  2  1  2  3             2  1  1  2  3
   4  3  2  3  4            3  2  2  2  3

 Because the iterative procedure is rather slow, the neighborhoods 
 are calculated upto given maximal value. The uncalculated values
 in the returned matrix are Inf:s.

Required input arguments

  Ne1   (matrix) Each row contains 1, if the corresponding unit is adjacent 
                 for that map unit, 0 otherwise. This can be calculated 
                 using SOM_UNIT_NEIGHS. The matrix can be sparse.
                 Size munits x munits.

Optional input arguments

  n     (scalar) Maximal neighborhood value which is calculated, 
                 Inf by default (all neighborhoods).

Output arguments

  Ne    (matrix) neighborhood values for each map unit, size is
                 [munits, munits]. The matrix contains the minimum
                 neighborhood of unit i, to which unit j belongs, 
                 or Inf, if the neighborhood was bigger than n.


  Ne = som_neighborhood(Ne1,1);    % upto 1-neighborhood
  Ne = som_neighborhood(Ne1,Inf);  % all neighborhoods
  Ne = som_neighborhood(som_unit_neighs(topol),4);

See also

som_unit_neighs Calculate units in 1-neighborhood for each map unit.
som_unit_coords Calculate grid coordinates.
som_unit_dists Calculate interunit distances.
som_connection Connection matrix.