Sunteți pe pagina 1din 6

Consideraciones iníciales a tener en cuenta en cuestiones de nomenclaturas y posiciones de los índices

del vector y la matriz.

Tenemos que tener cuidado con como queremos referenciar las posiciones (posición con respecto a filas o comunas).
Supongamos un vector de

0 1 .. z-2 z-1
Vector 0 1 2 3 4 5 6 7 8
z

Forma de colocación del vector en una rejilla (matrix) de “mxn” (“m” filas por “n” columnas)

Distribución de los elementos dentro de la n


Matriz - - n-1
- 0 1 2
m - 3 4 5
m-1 6 7 8

Seleccionado un “K” punto de referencia ¿Cómo calcularíamos la los adyacentes (vecinos)?

Su distribución respecto a “K” (punto de referencia que tomamos como eje) y tomando como referencia las columnas “n” será:

Formulas para el cálculo de los adyacentes a “K” Filas


K-n-1 K-n K-n+1
K-1 K K+1
K+n-1 K+n K+n+1
Anterior (n-1) n Posterior (n+1) Columnas

Supongamos el caso de una matriz de 5x4 (5 filas x 4 columnas). Colocación con respecto a las columnas “n”, n= 4
Colocación del vector en la matriz Posiciones a estudiar
0 1 2 3 0 1 2 3
0 0 1 2 3 0 (a) (b) (c)
1 4 5 6 7 1 (d) (e) (f)
2 8 9 10 11 2
3 12 13 14 15 3
4 16 17 18 19 4 (g) (h) (I)

Calculo de la localización de los vecinos. Vecinos con respecto a un eje (origen) indicando el elemento del vector que le
corresponde la posición (Sup Iz, Sup, … ).
Columnas n=4 Sup Iz Sup Sup Der Izq Punto Der Inf Izq Inf Inf Der
Valor de
Posición K-n-1 K-n K-n+1 K-1 K K+1 K+n-1 K+n K+n+1
“K”
a K=0 -5 -4 -3 -1 0 1 3 4 5
b K=1 -4 -3 -2 0 1 2 4 5 6
c K=3 -2 -1 0 2 3 4 6 7 8
d K=4 -1 0 1 3 4 5 7 8 9
e K=5 0 1 2 4 5 6 8 9 10
f K=7 2 3 4 6 7 8 10 11 12
g K=16 11 12 13 15 16 17 19 20 21
h K=17 12 13 14 16 17 18 20 21 22
i K=19 14 15 16 18 19 20 22 23 24

Supongamos casos extremos.

1
Una matriz de 1x4 (1 fila x 4 columnas). Colocación con respecto a las columnas “n”, n = 4
Colocación del vector en la matriz Posiciones a estudiar
0 1 2 3 0 1 2 3
0 0 1 2 3 0 (a) (b) (c)

Columnas n=4 Sup Iz Sup Sup Der Izq Punto Der Inf Izq Inf Inf Der
Valor de
Posición K-n-1 K-n K-n+1 K-1 K K+1 K+n-1 K+n K+n+1
“K”
a K=0 -5 -4 -3 -1 0 1 3 4 5
b K=1 -4 -3 -2 0 1 2 4 5 6
c K=3 -2 -1 0 2 3 4 6 7 8

Una matriz de 5x1 (5 filas x 1 columna). Colocación con respecto a las columnas “m”, m = 1
Colocación del vector en la matriz Posiciones a estudiar
0 0
0 0 0 (a)
1 1 1 (b)
2 2 2
3 3 3
4 4 4 (c)

Columnas n=1 Sup Iz Sup Sup Der Izq Punto Der Inf Izq Inf Inf Der
Valor de
Posición K-n-1 K-n K-n+1 K-1 K K+1 K+n-1 K+n K+n+1
“K”
a K=0 -2 -1 0 -1 0 ¿1? 0 1 2
b K=1 -1 0 1 ¿0? 1 ¿2? 1 2 3
c K=4 2 3 4 ¿3? 4 5 4 5 6

Una matriz de 1x1 (5 filas x 1 columna). Colocación con respecto a las columnas “m”, m = 1
Colocación del vector en la matriz Posiciones a estudiar
0 0
0 0 0 (a)

Columnas n=1 Sup Iz Sup Sup Der Izq Punto Der Inf Izq Inf Inf Der
Valor de
Posición K-n-1 K-n K-n+1 K-1 K K+1 K+n-1 K+n K+n+1
“K”
a K=0 -2 -1 ¿0? -1 0 1 ¿0? 1 2

Cuando aplicamos los valores para el cálculos de los vecinos


Sup Iz Sup Sup Der Izq Punto Der Inf Izq Inf Inf Der
K-n-1 K-n K-n+1 K-1 K K+1 K+n-1 K+n K+n+1

Aunque el valor de “K” este en una esquina, en un borde siempre nos dará algún valor para zonas fuera del universo de la
matriz. Hay que buscar una serie de condiciones que nos elimine los vecinos que están fuera del universo de búsqueda.

Ejemplo de la esquina Superior derecha


Columnas n=4 Sup Iz Sup Sup Der Izq Punto Der Inf Izq Inf Inf Der
Valor de
Posición K-n-1 K-n K-n+1 K-1 K K+1 K+n-1 K+n K+n+1
“K”
a K=0 -5 -4 -3 -1 0 1 3 4 5

Búsqueda de condiciones que eliminen los vecinos que están fuera del universo de estudio
Para esto tomaremos una nueva nomenclatura del universo.

mxn El número de columnas es n = 3, su distribución es desde 0 hasta 2 (n-1)

2
(fila, columna) 0 1 2
El número de filas es m
0 (0,0) (0,1) (0,2)
= 3, su distribución es
1 (1,0) (1,1) (1,2)
desde 0 hasta 2 (m-1)
2 (2,0) (2,1) (2,2)

Matriz (0,0) (0,1) (0,2) (1,0) (1,1) (1,2) (2,0) (2,1) (2,2)
Vector 0 1 2 3 4 5 6 7 8

Relacionando ambas nomenclaturas para el cálculo de los vecinos mediante las operaciones “div” y “mod”.
Superior Izquierda Superior Superior Derecha
K-n-1 K-n K+n-1
Fila (K div n)-1 Columna (K mod n)-1 Fila (K div n)-1 Columna (K mod n) Fila (K div n)-1 Columna (K mod n)+1
Izquierda Punto Derecha
K-1 K K+1
Fila (K div n) Columna (K mod n)-1 Fila (K div n) Columna (K mod n) Fila (K div n) Columna (K mod n)+1
Inferior Izquierda Inferior Inferior Derecha
K+n-1 K+n K+n+1
Fila (K div n)+1 Columna (K mod n)-1 Fila (K div n)+1 Columna (K mod n) Fila (K div n)+1 Columna (K mod n)+1

Supongamos el caso de una matriz de 5x4 (5 filas x 4 columnas). Colocación con respecto a las columnas “n”, n= 4
Colocación del vector en la matriz Posiciones a estudiar
0 1 2 3 0 1 2 3 0 1 2 3
0 0 1 2 3 0 (0,0) (0,1) (0,2) (0,3) 0 (a) (b) (c)
1 4 5 6 7 1 (1,0) (1,1) (1,2) (1,3) 1 (d) (e) (f)
2 8 9 10 11 2 (2,0) (2,1) (2,2) (2,3) 2
3 12 13 14 15 3 (3,0) (3,1) (3,2) (3,3) 3
4 16 17 18 19 4 (4,0) (4,1) (4,2) (4,3) 4 (g) (h) (I)

Calculo de la localización de los vecinos.


Columnas n=4 Sup Iz Sup Sup Der Izq Punto Der Inf Izq Inf Inf Der
a K=0 Vector -5 -4 -3 -1 0 1 3 4 5
Matriz (-1,-1) (-1,0) (-1,1) (0,-1) (0,0) (0,1) ¿(1,-1)? (1,0) (1,1)
b K=1 Vector -4 -3 -2 0 1 2 4 5 6
Matriz (-1,0) (-1,1) (-1,2) (0,0) (0,1) (0,2) (1,0) (1,1) (1,2)
c K=3 Vector -2 -1 0 2 3 4 6 7 8
Matriz (-1,2) (-1,3) (-1,4) (0,2) (0,3) ¿(0,4)? (1,2) (1,3) ¿(1,4)?
d K=4 Vector -1 0 1 3 4 5 7 8 9
Matriz (0,-1) (0,0) (0,1) ¿(1,-1)? (1,0) (1,1) ¿(2,-1)? (2,0) (2,1)
e K=5 Vector 0 1 2 4 5 6 8 9 10
Matriz (0,0) (0,1) (0,2) (1,0) (1,1) (1,2) (2,0) (2,1) (2,2)
f K=7 Vector 2 3 4 6 7 8 10 11 12
Matriz (0,2) (0,3) ¿(0,4)? (1,2) (1,3) ¿(1,4)? (2,2) (2,3) ¿(2,4)?
g K=16 Vector 11 12 13 15 16 17 19 20 21
Matriz ¿(3,-1)? (3,0) (3,1) ¿(4,-1)? (4,0) (4,1) ¿(5,-1)? (5,0) (5,1)
h K=17 Vector 12 13 14 16 17 18 20 21 22
Matriz (3,0) (3,1) (3,2) (4,0) (4,1) (4,2) (5,0) (5,1) (5,2)
i K=19 Vector 14 15 16 18 19 20 22 23 24
Matriz (3,2) (3,3) ¿(3,4)? (4,2) (4,3) (4,4) (5,2) (5,3) (5,4)

De los valores que no son vecinos podemos ver que cumplen que en el modo (fila, columna) uno de los parámetros sale fuera de
los límites del universo. Indicamos que la rejilla era m xn (“m” filas por “n” columnas). Ver ejemplo 3x3 (3 columnas).

Caso a) (0,-1) (0,0) (0,1)


(1,-1) (1,0) (1,1)
(-1,-1) (-1,0) (-1,1)

3
Caso b)

(-1,0) (-1,1) (-1,2) (1,1) (1,2) (1,3)


(0,0) (0,1) (0,2) (2,1) (2,2) (2,3)
(1,0) (1,1) (1,2) (3,1) (3,2) (3,3)

Caso c)

(-1,1) (-1,2) (-1,3)


(0,1) (0,2) (0,3)
(1,1) (1,2) (1,3)

Caso d)

(0,-1) (0,0) (0,1)


(1,-1) (1,0) (1,1)
(2,-1) (2,0) (2,1)

Caso e)

(0,0) (0,1) (0,2)


(1,0) (1,1) (1,2)
(2,0) (2,1) (2,2)

Caso f)

(0,1) (0,2) (0,3)


(1,1) (1,2) (1,3)
(2,1) (2,2) (2,3)

Caso g)

(1,-1) (1,0) (1,1)


(2,-1) (2,0) (2,1)
(3,-1) (3,0) (3,1)

Caso h)

(1,0) (1,1) (1,2)


(2,0) (2,1) (2,2)
(3,0) (3,1) (3,2)

Caso i)

4
Caso Fila Condición Columna Condición
a) Sup Izq, Sup, Sup Der ((K div n)-1)>-1 Sup Izq, Izq, Inf Izq ((K mod n)-1)>-1
b) Sup Izq, Sup, Sup Der ((K div n)-1)>-1
c) Sup Izq, Sup, Sup Der ((K div n)-1)>-1 Sup Der, Der, Inf Der ((K mod n)+1)<n
d) Sup Izq, Izq, Inf Izq ((K mod n)-1)>-1
e)
f) Sup Der, Der, Inf Der ((K mod n)+1)<n
g) Inf Izq, Inf, Inf Der ((K div n)+1)<n Sup Izq, Izq, Inf Izq ((K mod n)-1)>-1
h) Inf Izq, Inf, Inf Der ((K div n)+1)<n
i) Inf Izq, Inf, Inf Der ((K div n)+1)<n Sup Der, Der, Inf Der ((K mod n)+1)<n

Resumiendo
Superior Izquierda Superior Superior Derecha
K-n-1 K-n K+n-1
Fila ((K div n)-1)>-1 Fila ((K div n)-1)>-1 Fila ((K div n)-1)>-1
Columna ((K mod n)-1)>-1 Columna (K mod n) Columna ((K mod n)+1)<n
Izquierda Punto Derecha
K-1 K K+1
Fila (K div n) Fila (K div n) Fila (K div n)
Columna ((K mod n)-1)>-1 Columna (K mod n) Columna ((K mod n)+1)<n
Inferior Izquierda Inferior Inferior Derecha
K+n-1 K+n K+n+1
Fila ((K div n)+1)<n Fila ((K div n)+1)<n Fila ((K div n)+1)<n
Columna ((K mod n)-1)>-1 Columna (K mod n) Columna ((K mod n)+1)<n

Superior Izquierda K-n-1 Fila ((K div n)-1)>-1 Columna ((K mod n)-1)>-1
Superior K-n Fila ((K div n)-1)>-1 Columna (K mod n)
Superior Derecha K+n-1 Fila ((K div n)-1)>1)>-1 Columna ((K mod n)+1)<n
Izquierda K-1 Fila (K div n) Columna ((K mod n)-1)>-1
Punto K Fila (K div n) Columna (K mod n)
Derecha K+1 Fila (K div n) Columna ((K mod n)+1)<n
Inferior Izquierda K+n-1 Fila ((K div n)+1)<n Columna ((K mod n)-1)>-1
Inferior K+n Fila ((K div n)+1)<n Columna (K mod n)
Inferior Derecha K+n+1 Fila ((K div n)+1)<n Columna ((K mod n)+1)<n

Superior Izquierda Superior Superior Derecha


K-n-1 K-n K+n-1
Fila ((K div n)-1)>-1 Fila ((K div n)-1)>-1 Fila ((K div n)-1)>1)>-1
Columna ((K mod n)-1)>-1 Columna (K mod n) Columna ((K mod n)+1)<n
Izquierda Punto Derecha
K-1 K K+1
Fila (K div n) Fila (K div n) Fila (K div n)
Columna ((K mod n)-1)>-1 Columna (K mod n) Columna ((K mod n)+1)<n
Inferior Izquierda Inferior Inferior Derecha
K+n-1 K+n K+n+1
Fila ((K div n)+1)<n Fila ((K div n)+1)<n Fila ((K div n)+1)<n
Columna ((K mod n)-1)>-1 Columna (K mod n) Columna ((K mod n)+1)<n

Simplificamos
Fila ((K div n)-1)>-1 ((K div n)+1)<n
Columna ((K mod n)-1)>-1 ((K mod n)+1)<n

5
Al introducir la operación “div” tenemos que tener en cuenta que “n” nunca puede ser 0.

S-ar putea să vă placă și