如何基于R中另一个矩阵的值生成矩阵
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何基于R中另一个矩阵的值生成矩阵相关的知识,希望对你有一定的参考价值。
假设我有较低的三角矩阵,即
w1 <- c(0,0.6,0.3,0.6,0.7,
0,0,0.6,0.6,0.7,
0,0,0,0.6,0.6,
0,0,0,0,0.7,
0,0,0,0,0)
w1 <- matrix(w1,5,5)
然后,我希望第二个矩阵是一个下三角矩阵,比如w2
,其中w2
的每个非零值都是1-the corresponding values of w1
。
像这样:
w2 <- c(0,0.4,0.7,0.4,0.3,
0,0,0.4,0.4,0.3,
0,0,0,0.4,0.4,
0,0,0,0,0.3,
0,0,0,0,0)
w2 <- matrix(w2,5,5)
w <- list(w1, w2)
我怎样才能自动获得w2
?
答案
由于R中的大多数操作都是矢量化的,因此您可以简单地使用ifelse
来减去1 - w1
,或者如果w1
为零,则保留为零。
ifelse(w1 == 0, 0, 1 - w1)
另一答案
您也可以在左侧使用lower.tri()
的索引:
w2new <- matrix(0, dim(w1)[1], dim(w1)[2])
w2new[lower.tri(w2new)] <- 1 - w1[lower.tri(w1)]
以上是关于如何基于R中另一个矩阵的值生成矩阵的主要内容,如果未能解决你的问题,请参考以下文章
如何将矩阵 R 放入循环中并生成矩阵 R> 的新值> [关闭]
labview怎么提取一幅图像rgb值,最后生成三个矩阵,每个矩阵里分别存放R,G,B的值