R:将矩阵值存储到另一个矩阵

时间:2018-03-15 15:47:46

标签: r matrix

我有这段代码:

mat=matrix(c(0,0,0), nrow=6, ncol=1)
value=matrix();
k=1
repeat{
  mat[]=as.matrix(rep(k), nrow=6, ncol=1)
  print(mat)
  #value[,k]=mat
  if(k==3){
    break
  }
  k=k+1
}

在每次迭代中创建矩阵mat的情况下,生成的矩阵mat的值为:

    [,1]
[1,]    1
[2,]    1
[3,]    1
[4,]    1
[5,]    1
[6,]    1
     [,1]
[1,]    2
[2,]    2
[3,]    2
[4,]    2
[5,]    2
[6,]    2
     [,1]
[1,]    3
[2,]    3
[3,]    3
[4,]    3
[5,]    3
[6,]    3

我想将它们存储在矩阵value上,它应该是这样的:

     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    1    2    3
[3,]    1    2    3
[4,]    1    2    3
[5,]    1    2    3
[6,]    1    2    3

这只是一个测试示例,因为我的实际矩阵非常大,并且迭代次数未知,实际算法在满足条件时停止。

1 个答案:

答案 0 :(得分:1)

您可以通过这种方式修改代码

mat=matrix(c(0,0,0), nrow=6, ncol=1)
k=1
mat.list <- list()  # store each iteration in a list
repeat{
  mat.list[[k]] <- matrix(rep(k), nrow=6, ncol=1)
  print(mat)
  #value[,k]=mat
  if(k==3){
    break
  }
  k=k+1
}
do.call(cbind, mat.list) # combine all list elements into a matrix
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    1    2    3
[3,]    1    2    3
[4,]    1    2    3
[5,]    1    2    3
[6,]    1    2    3