R中多个矩阵的加法

#第一种算法,采用循环的方法

 matrices <- vector(mode="list", length=10000)#生成一个空的列表,用于存储多个矩阵

for (i in 1:10000) {matrices[[i]] <- matrix(rnorm(10000), 100, 100)}#将生成的多个矩阵存储到列表中

  system.time({

   S <- matrix(0, 100, 100)

               for (i in 1:10000) S <- S + matrices[[i]]

 })  #对多个矩阵求和,并计算所用时间


system.time(S1 <- Reduce("+", matrices))#第二种算法,Reduce函数将函数'+'依次连接列表中的矩阵


range(S1 - S)#检验两种算法的结果是否一致,即求差值的最大值和最小值是否均为0


你可能感兴趣的:(R中多个矩阵的加法)