提问人:Leo96 提问时间:4/29/2021 更新时间:4/29/2021 访问量:39
R:随机切换矩阵中对角线外的符号
R: Randomly switch signs of the off-diagonals in a matrix
问:
假设我生成以下矩阵
Sigma <- diag(x = 1, 100, 100)
Sigma[Sigma == 0] <- 0.25
所以在对角线上有“1”,在对角线上有“0.25”。如何随机更改对角线上的一些符号,使其具有 -0.25 和 0.25?
当然,人们可以循环这些元素,但我认为这不是一个优雅的解决方案
答:
1赞
Ronak Shah
4/29/2021
#1
一种方法是随机生成矩阵长度的 1 和 -1,将其乘以矩阵并将对角线变为 1。
Sigma <- Sigma * sample(c(1, -1), length(Sigma), replace = TRUE)
diag(Sigma) <- 1
Sigma
评论