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)

问题是:如何到达下面的矩阵 "forgets" ([1,2],[2,1]) 并且只显示 1 和 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

关于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。将您的解决方案应用于我的 MClist 40 (Mn,Nn) 对,似乎以这种方式工作:

 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)
})