This takes two sets of five random points stored as a NumPy matrix, and then calculates the NumPy matrix between a point of the first set and a point of the second set. While the code works, I feel it's inelegant, as if I was writing in PHP or some other language. How can the function CalculateMatrixDistances
be improved?
import random
import numpy as np
import scipy
from scipy import spatial
P=5
V=5
def CalculateMatrixDistances(MatRows,MatColums):
numberRows=MatRows.shape[0]
numberColumns=MatColums.shape[0]
MatrixDistances=np.matrix( [0 for c in range(numberColumns)] )
for r in range(numberRows):
d=[scipy.spatial.distance.euclidean (MatRows[r],MatColums[c]) for c in range(numberColumns)]
MatrixDistances = np.vstack([MatrixDistances, d])
MatrixDistances=np.delete(MatrixDistances, (0), axis=0)
return MatrixDistances
PositionP=np.random.rand(P,2)
PositionV=np.random.rand(V,2)
MatrixDistancesVP=CalculateMatrixDistances(PositionV,PositionP)
print PositionP
print PositionV
print MatrixDistancesVP