### Description

`sNeighAny`

is supposed to calculate any neighbors for each
hexagon/rectangle in a regular 2D grid. It returns a matrix with rows
for the self, and columns for its any neighbors.

### Usage

sNeighAny(sObj)

### Arguments

- sObj
- an object of class "sTopol" or "sInit" or "sMap"

### Value

`aNeigh`

: a matrix of nHex x nHex, containing distance info
in terms of any neighbors, where nHex is the total number of
hexagons/rectanges in the grid

### Note

The return matrix has rows for the self, and columns for its neighbors.
The non-zeros mean the distance away from its neighbors, and the zeros
for the self-self. It has rows/columns ordered in the same order as the
"coord" matrix of the input object does.

### Examples

# 1) generate an iid normal random matrix of 100x10
data <- matrix( rnorm(100*10,mean=0,sd=1), nrow=100, ncol=10)
# 2) from this input matrix, determine nHex=5*sqrt(nrow(data))=50,
# but it returns nHex=61, via "sHexGrid(nHex=50)", to make sure a supra-hexagonal grid
sTopol <- sTopology(data=data, lattice="hexa", shape="suprahex")
# 3) initialise the codebook matrix using "uniform" method
sI <- sInitial(data=data, sTopol=sTopol, init="uniform")
# 4) calculate any neighbors based on different objects
# 4a) based on an object of class "sTopol"
aNeigh <- sNeighAny(sObj=sTopol)
# 4b) based on an object of class "sMap"
# aNeigh <- sNeighAny(sObj=sI)