【发布时间】:2021-02-28 19:48:59
【问题描述】:
我正在尝试编写一个函数来计算跨 n 维的两点之间的欧几里得距离。
我有以下代码:
euc_dist <- function(x1, x2) sqrt(sum((x1 - x2) ^ 2))
这适用于x1 和x2 两点之间。但是,我正在尝试对两点之间的 n 维执行此操作。
例如,在 Python 中,它适用于:
def euc_distance(p, q):
return math.sqrt(sum((px - qx) ** 2 for px, qx in zip(p, q)))
即您可以输入例如三个维度(两点之间):
euc_distance([2, 1, 4], [4, 9, 8])
如何编辑我的 R 代码来做同样的事情?
【问题讨论】:
-
看看
?dist:dist(rbind(c(0,3,0), c(4,0,0))) -
谢谢 - 但我正在尝试编写函数而不是使用
dist。有什么建议吗? @GKi
标签: r function euclidean-distance