Hola, Soy bastante nuevo en el tema, 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...
#### 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]