【问题标题】:R: Storing matrix values to another matrixR:将矩阵值存储到另一个矩阵
【发布时间】:2018-03-15 15:47:45
【问题描述】:

我有这个代码:

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

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

【问题讨论】:

    标签: r matrix


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-08
      • 1970-01-01
      • 1970-01-01
      • 2015-12-28
      相关资源
      最近更新 更多