计算一个矩阵行之间的欧氏距离
时间: 2023-12-14 18:39:55 浏览: 81
结合PCA的尺度不变特征变换(SIFT)算法,BP神经网络的整个训练过程-计算两个矩阵之间的欧氏距离.zip
假设有一个 $m \times n$ 的矩阵 $A$,其中每一行表示一个向量,我们可以计算每一行之间的欧氏距离。
具体做法是,先将每一行向量转置成列向量,然后计算列向量之间的欧氏距离。可以使用 numpy 库来实现:
```python
import numpy as np
def euclidean_distance_matrix(A):
"""
计算矩阵行之间的欧氏距离矩阵
参数:
A: np.array, shape=(m, n)
返回值:
D: np.array, shape=(m, m)
"""
# 转置矩阵,使每一列代表一个向量
AT = A.T
# 计算列向量之间的欧氏距离
D = np.sqrt(((AT[:, np.newaxis, :] - AT[np.newaxis, :, :])**2).sum(axis=-1))
return D
```
其中,`np.newaxis` 可以将原来的一维数组(向量)扩展为二维数组(矩阵),方便进行矩阵计算。
阅读全文