我有这段代码:
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
这只是一个测试示例,因为我的实际矩阵非常大,并且迭代次数未知,实际算法在满足条件时停止。
答案 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