gpt4 book ai didi

r - 一种快速计算点到 R 中 y=x 的正交距离的方法

转载 作者:行者123 更新时间:2023-12-01 09:31:16 26 4
gpt4 key购买 nike

我有很多点位于 y=x 周围(见下面的例子),我希望计算每个点到这个y=x正交距离 .假设一个点有坐标(a,b) ,那么很容易看到y=x上的投影点有坐标 ((a+b)/2, (a+b)/2) .我使用以下 native 代码进行计算,但我认为我需要 更快的 没有 for循环。非常感谢!

set.seed(999)
n=50
typ.ord = seq(-2,3, length=n) # x-axis
#
good.ord = sort(c(rnorm(n/2, typ.ord[1:n/2]+1,0.1),rnorm(n/2,typ.ord[(n/2+1):n]-0.5,0.1)))
y.min = min(good.ord)
y.max = max(good.ord)
#
plot(typ.ord, good.ord, col="green", ylim=c(y.min, y.max))
abline(0,1, col="blue")
#
# a = typ.ord
# b = good.ord
cal.orth.dist = function(n, typ.ord, good.ord){
good.mid.pts = (typ.ord + good.ord)/2
orth.dist = numeric(n)
for (i in 1:n){
num.mat = rbind(rep(good.mid.pts[i],2), c(typ.ord[i], good.ord[i]))
orth.dist[i] = dist(num.mat)
}
return(orth.dist)
}
good.dist = cal.orth.dist(50, typ.ord, good.ord)
sum(good.dist)

最佳答案

很简单

good.dist <- sqrt((good.ord - typ.ord)^2 / 2)

这一切都归结为计算点和线之间的距离。在 y = x 的 2D 情况下,这变得特别容易(自己尝试一下)。

关于r - 一种快速计算点到 R 中 y=x 的正交距离的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15070926/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com