计算 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.
我有 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.