我有这组 x 和 y 坐标:
x<-c(1.798805,2.402390,2.000000,3.000000,1.000000)
y<-c(0.3130147,0.4739707,0.2000000,0.8000000,0.1000000)
as.matrix(cbind(x,y))->d
我想计算包含这组点的椭球体,我使用该函数ellipsoidhull()
在包“cluster”中,我得到:
> ellipsoidhull(d)
'ellipsoid' in 2 dimensions:`
center = ( 2.00108 0.36696 ); squared ave.radius d^2 = 2`
and shape matrix =
x 0.66590 0.233106
y 0.23311 0.095482
hence, area = 0.60406
然而,对我来说,如何从这些结果中得到该椭圆的半长轴的长度并不明显。
任何想法?
预先非常感谢您。
Tina.
半轴的平方是
形状矩阵的特征值乘以平均平方半径。
x <- c(1.798805,2.402390,2.000000,3.000000,1.000000)
y <- c(0.3130147,0.4739707,0.2000000,0.8000000,0.1000000)
d <- cbind( x, y )
library(cluster)
r <- ellipsoidhull(d)
plot( x, y, asp=1, xlim=c(0,4) )
lines( predict(r) )
e <- sqrt(eigen(r$cov)$values)
a <- sqrt(r$d2) * e[1] # semi-major axis
b <- sqrt(r$d2) * e[2] # semi-minor axis
theta <- seq(0, 2*pi, length=200)
lines( r$loc[1] + a * cos(theta), r$loc[2] + a * sin(theta) )
lines( r$loc[1] + b * cos(theta), r$loc[2] + b * sin(theta) )
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)