2019-04-11
閱讀量:
1221
求兩個(gè)矩陣中向量的歐氏距離
假設(shè)有兩個(gè)三維向量集,用矩陣表示:
要求A,B兩個(gè)集合中的元素兩兩間歐氏距離。
先求出ABT:
然后對(duì)A和BT分別求其中每個(gè)向量的模平方,并擴(kuò)展為2*3矩陣:
然后:
將上面這個(gè)矩陣一開(kāi)平方,就得到了A,B向量集兩兩間的歐式距離了。
defEuclideanDistances(A, B):
BT = B.transpose()
# vecProd = A * BT
vecProd = np.dot(A,BT)
# print(vecProd)
SqA = A**2# print(SqA)
sumSqA = np.matrix(np.sum(SqA, axis=1))
sumSqAEx = np.tile(sumSqA.transpose(), (1, vecProd.shape[1]))
# print(sumSqAEx)
SqB = B**2
sumSqB = np.sum(SqB, axis=1)
sumSqBEx = np.tile(sumSqB, (vecProd.shape[0], 1))
SqED = sumSqBEx + sumSqAEx - 2*vecProd
SqED[SqED<0]=0.0
ED = np.sqrt(SqED)
return ED






評(píng)論(0)


暫無(wú)數(shù)據(jù)
CDA考試動(dòng)態(tài)
CDA報(bào)考指南
推薦帖子
0條評(píng)論
0條評(píng)論
0條評(píng)論
0條評(píng)論