簡體   English   中英

R 中的嵌套循環矩陣索引

[英]nested loop matrix index in R

我正在 R 中學習矩陣乘法,以下是我想要實現的。 我這樣做純粹是為了提升我在 R 中的技能。 以下是我正在使用的矩陣類型:

m <- matrix(1, 100, 10)

我有一個只有元素1的矩陣,它有 100 行和 10 列。 現在我想用 0 從第 1 行到第 10 行替換第 1 列。 然后對於第二列,我想將 1 替換為從第 11 行到第 20 行的零。類似地,對於第三列,我想將 1 替換為從第 21 行到第 30 行的零,對於 rest 的第 10 列也是如此。按照我的例子

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

我非常確信我的邏輯是正確的,但是每次運行代碼時,都會收到以下錯誤消息Subscripts out of bounds Call 我現在嘗試了幾天,但無法解決此問題。 對於解決此問題的任何提示或直接解決方案,我將不勝感激。 提前謝謝了。

你可以只使用一個變量,我認為這會更容易。 對於每一列 j,獲取行索引的下限和上限並指定為 0。

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

返回指定范圍內的 0。

暫無
暫無

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

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