Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
matriz de distancia Manhattan python
#1
Hola, Soy bastante nuevo en el tema de Python, Estoy tratando de programar la matriz de Mannhatan sin ninguna librería (Debo realizarla así), al ejecutar el código genera la matriz (Ver al final), pero lo que sucede es que no he podido acomodar las variables x,y,z y o en una matriz, como ven en el código quiero hacerlo con matrix[] y que me genere un orden especifico, que pasa? .... que desarrolle este ejemplo pero si necesito más vectores en la matriz me toca a mano colocarla, como podría automatizarla?   Gracias por su ayuda... Smile Smile
#### DistManhattan
x=[1,2,3,4,5]
y=[2,2.5,3.2,2,2]
z=[2,5,3,2.1548,1]
o=[-2.2,-2.5,-5.3,2.1548,1]
matrix=[[x,y,z,o],[y,z,o,x],[z,o,x,y],[o,x,y,z]]
m=4
Salida=[[None for _ in range(m)] for _ in range(m)]
n=len(matrix)
for i in range(0,n):
    for j in range(0,n):
        dist=0
        a=matrix[i][0]
        b=matrix[0][j]
        for k in range(0,len(a)):
            dif=a[k]-b[k]
            if dif<0:
                dif=dif*-1
                dist=dist+dif
                Salida[i][j]=dist
            else:
                dist=dist+dif
                Salida[i][j]=dist
            #print (dist)
for i in range(n):
    print(Salida[i][:])
#Resultado matriz en diagonal
[0, 6.7, 9.8452, 21.8452] 
[6.7, 0.0, 3.8548, 18.854799999999997] 
[9.8452, 3.8548, 0.0, 20.0]
[21.8452, 18.854799999999997, 20.0, 0.0]
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)