我需要在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。
答案 0 :(得分:3)
我们可以执行diag
并将其转换为logical
矩阵
fmat <- function(n) {
diag(n)==1
}
fmat(2)
# [,1] [,2]
#[1,] TRUE FALSE
#[2,] FALSE TRUE