gpt4 book ai didi

r - 如何比较两个矩阵以查看它们在R中是否相同?

转载 作者:行者123 更新时间:2023-12-04 10:04:09 25 4
gpt4 key购买 nike

例如,我有两个矩阵,我想知道它们在每个元素中是否相同。

mymatrix<-Matrix(rnorm(20),ncol=5)
mysvd<-svd(mymatrix)
newmatrix<-mysvd$u %*% diag(mysvd$d) %*% t(mysvd$v)

我使用以下方法对其进行了比较:
identical(Matrix(newmatrix), mymatrix)
all.equal(Matrix(newmatrix), mymatrix)

为什么第一个不返回TRUE?
无论我使用来自矩阵包的Matrix还是来自基本包的矩阵

最佳答案

由于差异很小,它们并不完全相等(每个identical):

> max(abs(Matrix(newmatrix) - mymatrix))
[1] 1.110223e-15

但是这些差异小于 tolerance中的默认 all.equal:
> .Machine$double.eps ^ 0.5
[1] 1.490116e-08

因此 identical将返回 FALSE,而 all.equal将返回 TRUE

关于r - 如何比较两个矩阵以查看它们在R中是否相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23032387/

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