R中的嵌套循环矩阵索引

nested loop matrix index in R

我正在学习 R 中的矩阵乘法,以下是我想要实现的目标。我这样做纯粹是为了提升我在 R 方面的技能。 以下是我正在使用的矩阵类型:

m <- matrix(1, 100, 10)

我的矩阵只有 1 元素,有 100 行和 10 列。现在我想用第 1 行到第 10 行的 0 替换第 1 列。然后对于第二列,我想用第 11 行到第 20 行的零替换 1。同样对于第三列,我想用第 21 行到第 30 行的零替换 1,同样对于第 10 列的其余部分。以我为榜样

m <- matrix(1, 100, 10)                
for(j in 1:10){
   for(i in (j-1)*10+1: j*10){
     m[i,j] <-0
   }
}

我非常自信我的逻辑是正确的,但每次我 运行 我的代码时,我都会收到以下错误消息 下标越界调用 。我现在试了几天,但我无法解决这个问题。如果有任何提示或直接解决方案来解决此问题,我将不胜感激。非常感谢。

你可以只使用一个变量,我认为这样会更容易。对于每一列 j,获取行索引的下限和上限范围并指定为 0。

for(j in 1:10){
    row_lower <- (j-1)*10+1
    row_upper <- j*10
    m[row_lower: row_upper, j] <- 0
}

Returns 0 在您指定的范围内。