2017-02-18 107 views
0

R中的问题R试图用()填充矩阵

我无法使用for()循环填充值的矩阵。 我开始用做一个空白矩阵1-100

z <- matrix(NA, ncol=100, nrow=100) 
q <- 1:100 

我需要填写每个NROWS用1-100 使原来的矩阵变成每一行

在序列1-100我试过

for(n in 1:nrows(z)){ 
    print(q) 
} 

但它没有按预期工作。

+0

对此深感抱歉,我以为网站率R具体起初 – Namcaz

+0

感谢格式化帮助以及^^ – Namcaz

回答

1

print只是打印到屏幕上,不以任何方式更改您的矩阵。如果没有任何循环,最好做到这一点。

z <- matrix(rep(1:100, each=100), ncol=100, nrow=100) 

如果必须使用一个循环,

for(n in 1:nrow(z)){ 
    z[n,] = q 
} 

需要注意的是nrownrows

+0

我必须使用for循环作为练习的一部分,是否有某个函数可以让我将序列插入到现有的矩阵中? – Namcaz

+0

@Namcaz - 更新为包含循环 – G5W

+0

您实际上并不需要'rep';如果你指定'nrow'和'ncol',如果矢量不够长,它将被回收,所以你可以'矩阵(seq(100),100,100,byrow = TRUE)'。不太清楚,但更短:'col(diag(100))' – alistaire