我想比较两个向量之间的元素明智,但是当分量接近零时得到与我期望的不同。
这是代码:
m <- rbind(c(-2.138697227039309,2.02792645210313,-0.0446693398025567)
,c(-1.963333204136506,2.50000000000000,-0.5366667958634941)
,c(-2.292730243327192,2.50000000000000,-0.2072697566728089)
,c(-2.525115170624692,2.43589709931669,0.0892180713080040)
,c(-0.736143506893788,2.50000000000000,-1.7638564931062122)
,c(-2.299960100106132,2.50000000000000,-0.2000398998938679)
)
s <- matrix(c(0,5),nrow = 2)
A <- matrix(c(1,1,1,-1,1,-1),nrow = 2,byrow = TRUE)
for(i in 1:nrow(m)){
cat("\niter #:",i,"\n")
a <- A%*%m[i,]
print(a)
print(a <= s)
}
我得到以下输出:
iter #: 1
[,1]
[1,] -0.1554401
[2,] 4.2112930
[,1]
[1,] TRUE
[2,] TRUE
iter #: 2
[,1]
[1,] 0
[2,] 5
[,1]
[1,] TRUE
[2,] TRUE
iter #: 3
[,1]
[1,] -7.771561e-16
[2,] 5.000000e+00
[,1]
[1,] TRUE
[2,] FALSE
iter #: 4
[,1]
[1,] 2.026157e-15
[2,] 4.871794e+00
[,1]
[1,] FALSE
[2,] TRUE
iter #: 5
[,1]
[1,] -2.220446e-16
[2,] 5.000000e+00
[,1]
[1,] TRUE
[2,] TRUE
iter #: 6
[,1]
[1,] 2.775558e-16
[2,] 5.000000e+00
[,1]
[1,] FALSE
[2,] TRUE
我期望在迭代3,4和6中会有不同的结果。有没有更好的方法来比较这些向量。
这就是我想要的TRUE而不是FALSE
iter #: 3
[,1]
[1,] -7.771561e-16
[2,] 5.000000e+00
[,1]
[1,] TRUE
[2,] TRUE
iter #: 4
[,1]
[1,] 2.026157e-15
[2,] 4.871794e+00
[,1]
[1,] TRUE
[2,] TRUE
iter #: 6
[,1]
[1,] 2.775558e-16
[2,] 5.000000e+00
[,1]
[1,] TRUE
[2,] TRUE
谢谢
答案 0 :(得分:0)
我们可以检查'a'和's'之间的差是否小于或等于for(i in seq_len(nrow(m))){
cat("\niter #:",i,"\n")
a <- A%*%m[i,]
print(a)
print( (a -s) <= (10 *.Machine$double.eps))
}
的乘数
<item name="android:alertDialogTheme">@style/AlertDialogStyle</item>