如何在R中的矩阵乘法中获得单个值的最大值

时间:2018-06-19 11:55:40

标签: r matrix max

我有两个矩阵m1和m2:

m1 <- matrix(c(1,2, 0,2, 1,1), ncol=3, nrow=2)
m2 <- matrix(c(1,1,1, 3,3,3), ncol=2, nrow=3)

乘法结果:

m3 <- (m1%*%m2)
      [,1] [,2]
[1,]    2    6
[2,]    5   15

现在,我不想给矩阵m3中的总和,而是希望R给我相应的乘法过程的MAX值,例如:

for MAX[1,1]=(1+0+1)=1
for MAX[1,2]=(3+0+3)=3
for MAX[2,1]=(2+2+1)=2
for MAX[2,2]=(6+6+3)=6

我要生成以下矩阵:

      [,1] [,2]
[1,]    1    3
[2,]    2    6

如何实现?

1 个答案:

答案 0 :(得分:0)

您可以自己循环播放,例如

out <- sapply(1:nrow(m1), function(i) {
  sapply(1:ncol(m2), function(j){
    max(m1[i, ] * m2[, j])
  })
})

t(out)

     [,1] [,2]
[1,]    1    3
[2,]    2    6