【发布时间】:2018-04-04 18:46:26
【问题描述】:
我想计算任意数量(即n)维度的点和线之间的距离。
在here 中找到了一个很好的 2 维和 3 维示例。
有没有办法将此解决方案推广到更多维度?我看过previously 发布的其他解决方案,但我不确定如何在 R 中应用它。
非常感谢,
肯
【问题讨论】:
标签: r vector distance algebra euclidean-distance
我想计算任意数量(即n)维度的点和线之间的距离。
在here 中找到了一个很好的 2 维和 3 维示例。
有没有办法将此解决方案推广到更多维度?我看过previously 发布的其他解决方案,但我不确定如何在 R 中应用它。
非常感谢,
肯
【问题讨论】:
标签: r vector distance algebra euclidean-distance
我已经从原始问题中链接的解决方案中找到了答案。在此处发布 R 代码以供将来的读者阅读。
两点,A 和 B,定义感兴趣的线(这里长度为 10)
A <- runif(10, 0.0, 1.0)
B <- runif(10, 0.0, 1.0)
确定下一点的距离,P
P <- runif(10, 0.0, 1.0)
然后解决原始问题中发布的解决方案
pa = P - A
ba = B - A
t = as.vector((pa %*% ba) / (ba %*% ba))
d = (pa - t * ba)
最后,通过取其元素的平方和,然后是它的平方根来确定 d 的长度,即感兴趣的向量
dist = sqrt(sum(d^2))
dist # the solution`
【讨论】: