在R中生成逻辑矩阵

时间:2017-01-28 08:27:59

标签: r

我需要在R中为我正在处理的项目生成一个逻辑矩阵。它应该是对角线应该为TRUE,其余为FALSE。对于2x2矩阵,它很简单。

 d_matrix=matrix(c(TRUE, FALSE, FALSE,TRUE),nrow=2,byrow=TRUE)
 d_matrix
       [,1]  [,2]
 [1,]  TRUE FALSE
 [2,] FALSE  TRUE
     n=20
  diag_mat=diag(TRUE,n)

现在我遇到了一个问题,我需要任何n的逻辑矩阵。说n = 20。我尝试如上所示,但它给了我一个0和1的矩阵对角线。但我需要TRUE和FALSE。有没有办法做到这一点,以便我得到任何给定n的矩阵像d_matrix。

1 个答案:

答案 0 :(得分:3)

我们可以执行diag并将其转换为logical矩阵

fmat <- function(n) {
            diag(n)==1
    }
fmat(2)
#     [,1]  [,2]
#[1,]  TRUE FALSE
#[2,] FALSE  TRUE