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)
})
我正在尝试组合两个邻接矩阵,忽略对称交集。
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)
})