【问题标题】:How to calculate the distance between an array and a matrix如何计算数组和矩阵之间的距离
【发布时间】:2019-10-09 04:18:37
【问题描述】:

考虑一个矩阵 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 函数都允许计算矩阵的所有行对之间的距离矩阵,但不能计算这个数组矩阵。

【问题讨论】:

  • 如何获得 11.18 和 22.36?

标签: r distance


【解决方案1】:

我建议将行放在列表中而不是矩阵中,因为它可能会加快处理时间。但是对于你的例子,我会这样做

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)))

【讨论】:

    猜你喜欢
    • 2020-03-13
    • 2016-10-30
    • 1970-01-01
    • 1970-01-01
    • 2018-12-02
    • 2016-11-29
    • 2011-09-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多