2017-01-28 8 views
2

私が作業しているプロジェクトでは、Rで論理行列を生成する必要があります。対角がTRUEでなければなりません。残りは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の対角行列を与えました。しかし私はTRUEとFALSEが必要です。与えられたnに対してd_matrixのような行列を得るためにこれを行う方法はありますか?

答えて

3

我々はdiagを行うとlogicalマトリックス素晴らしいザッツ

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

に変換することができます。ありがとう! – user24318

関連する問題