计算 2 个矩阵的相应行之间的欧氏距离

Compute the Euclidean distances between corresponding rows of 2 matrices

我有 2 个矩阵 A 和 B,我想计算 A 的第一行和 B 的第一行、A 的第二行和 B 的第二行等之间的欧氏距离。我知道我可以使用 rdist 函数来计算 A 和 B 的所有行组合的距离并获得所需的值(结果中的对角线值),但我觉得可能有更有效的方法来仅计算所需的值。我该怎么做?

确实有一个很好的方法可以做到这一点。让

A <- matrix(rnorm(4 * 8), nrow = 4, ncol = 8)
B <- matrix(rnorm(4 * 8), nrow = 4, ncol = 8)

然后

sqrt(rowSums((A - B)^2))
# [1] 3.295312 3.222073 6.857711 2.991980

其中 A - B 做 element-wise 减法,我们可以对结果矩阵 element-wise 求平方,使用 rowSums 计算该矩阵的行总和并取平方根 element-wise.