2016-11-29 22 views
1

我有,我想总结如何在r中用seq_along求和两个矩阵?

mat1<-matrix(1:4,2,2)  
mat2<-matrix(5:8,2,2) 
mat1 
    [,1] [,2] 
[1,] 1 3 
[2,] 2 4 

mat2 
[,1] [,2] 
[1,] 5 7 
[2,] 6 8 

两个矩阵,我想这是什么

mat_sum 
    [,1] [,2] 
[1,] 6 10 
[2,] 8 12 

我试图

mat_sum <- sapply(seq_along(mat1), function(i) 
mat1[[i]]+mat2[[i]]) 

但后来它没有返回矩阵

[1] 6 8 10 12 

我怎样才能得到它返回一个矩阵?

回答

4

我们可以做一个定期+将保留matrix格式并执行的elementwise总和

mat1 + mat2 
#  [,1] [,2] 
#[1,] 6 10 
#[2,] 8 12 

如果有很多矩阵,将其放置在一个list和使用Reduce+

Reduce(`+`, mget(paste0("mat", 1:2))) 
+1

哇。那很简单。谢谢。 –