我有2个矩阵A和B,我想计算A的第1行和B的第1行,A的第2行和B的第2行之间的欧几里德距离等。我知道我可以使用{{1函数计算A和B的所有行组合的距离并获得所需的值(结果中的对角线值),但我觉得可能有一种更有效的方法来仅计算所需的值。我怎么能这样做?
答案 0 :(得分:2)
确实有一种很好的方法可以做到这一点。让
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
进行逐元素减法,我们可以按照元素的方式对结果矩阵进行平方,使用rowSums
计算该矩阵的行和,并采用平方根元素。