2017-01-28 2 views
2

Мне нужно создать логическую матрицу в R для проекта, над которым я работаю. Он должен быть таким, чтобы диагонали должны быть ИСТИННЫМ остатком FALSE. Для матрицы 2x2 это было просто.генерировать логическую матрицу в R

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 в диагонали. Но мне нужны ИСТИНА и ЛОЖЬ. Есть ли способ сделать это, чтобы получить матрицу типа d_matrix для любого заданного n.

ответ

3

Мы можем сделать diag и преобразовать его в logical матрицу

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

Thats удивительным. Благодаря ! – user24318

Смежные вопросы