簡體   English   中英

R:將矩陣值存儲到另一個矩陣

[英]R: Storing matrix values to another 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

這只是一個測試示例,因為我的實際矩陣將很大,並且迭代次數未知,因此當滿足條件時實際算法將停止。

您可以這樣簡單地修改代碼

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM