如何计算数组和矩阵之间的距离

时间:2019-05-22 15:59:06

标签: r distance

考虑矩阵A和数组b。我想计算b与A的每一行之间的距离。例如,考虑以下数据:

A <- matrix(c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15), 3, 5, byrow=TRUE)
b <- c(1, 2, 3, 4, 5)

我希望输出以下形式的数组:

distance_array = c(0, 11.18, 22.36)

其中值11.18来自a[2,]b之间的欧式距离:

sqrt(sum((a[2,]-b)^2))

这似乎很基础,但是到目前为止,我发现的所有R函数都允许计算矩阵的所有行对之间的距离矩阵,但不能计算此数组矩阵。

1 个答案:

答案 0 :(得分:1)

我建议将A列在列表中而不是矩阵中,因为这样可以缩短处理时间。但是,关于您的示例,这是我的处理方式

A <- matrix(c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15), 3, 5, byrow=TRUE)

b <- c(1, 2, 3, 4, 5)

apply(A,1,function(x)sqrt(sum((x-b)^2)))