簡體   English   中英

r刪除矩陣的對稱元素

[英]r removing symmetrical elements of a matrix

我正在嘗試合並兩個鄰接矩陣,以省略對稱的交點。

    M1<-matrix(c(0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0),nrow=5,ncol=5,byrow=T)
    M2<-matrix(c(0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0),nrow=5,ncol=5,byrow=T)

問題是:如何到達矩陣下方的“忘記” ([1,2],[2,1])並僅顯示一和零?

我的最終結果應該是:

      [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    0    0    0
[2,]    0    0    0    0    0
[3,]    1    0    0    0    0
[4,]    1    0    0    0    1
[5,]    0    0    0    0    0

我已經嘗試過各種涉及t(M2)的加法和減法,但總是有問題。

M = M1+M2
M[M==t(M)]=0
+(M>0)
     [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    0    0    0
[2,]    0    0    0    0    0
[3,]    1    0    0    0    0
[4,]    1    0    0    0    1
[5,]    0    0    0    0    0

感謝Onyambu。 將您的解決方案應用於我的40對(Mn,Nn)對的MClist時,似乎可以這樣進行:

 AddMC<-lapply(1:40, function(x){
  (MClist[[x]][[1]]+MClist[[x]][[2]])
})

InterMC<-lapply(1:40, function(x){
  AddMC[[x]][AddMC[[x]]==t(AddMC[[x]])]=0
  +(AddMC[[x]]>0)
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM