[英]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.