簡體   English   中英

使用R在矩陣中進行循環

[英]for loop in matrix using R

我必須將54個矩陣放在一個名為A的向量列表中。我希望此列表中的前25個矩陣為零矩陣,除了矩陣的第(i,j)個元素,它應該等於1。 我所有的矩陣都是5x5。 我正在使用for循環,但我不明白如何創建前25個矩陣。

現在我試圖用(i:(i-1),j:(j-1))th元素= 1制作16個矩陣0,因此有一個1的大小為2的2的平方。為此我使用了以下代碼,但我想確保'i'大於或等於2.我該怎么做?

    t<-26
for(i in 1:5){
   for(j in 1:5){
     A <- matrix(0, nrow = 5, ncol = 5)
    A[i:(i-1), j:(j-1)] <- 1
    M[[l]] <- A
    t <- t+1
   }
}
A

只是猜測你想要什么。 如果這不是您想要的,請告訴我,然后我可以編輯或刪除它。

A <- vector("list", 54)
mat <- matrix(0, nrow = 5, ncol = 5)

# assign mat to A and the 1 to the ith element of mat (column wise)
for (i in 1:25) {
  A[[i]] <- mat
  A[[i]][i] <- 1  
}

A[[1]]
# [,1] [,2] [,3] [,4] [,5]
# [1,]    1    0    0    0    0
# [2,]    0    0    0    0    0
# [3,]    0    0    0    0    0
# [4,]    0    0    0    0    0
# [5,]    0    0    0    0    0

A[[2]]
# [,1] [,2] [,3] [,4] [,5]
# [1,]    0    0    0    0    0
# [2,]    1    0    0    0    0
# [3,]    0    0    0    0    0
# [4,]    0    0    0    0    0
# [5,]    0    0    0    0    0

A[[25]]
# [,1] [,2] [,3] [,4] [,5]
# [1,]    0    0    0    0    0
# [2,]    0    0    0    0    0
# [3,]    0    0    0    0    0
# [4,]    0    0    0    0    0
# [5,]    0    0    0    0    1

插入1行(不是最優雅的方式)

# assing 1 the ith element of mat (column wise)
for (i in 1:25) {
  mat_1 <- mat
  mat_1[i] <- 1
  A[[i]] <- t(mat_1)
}

暫無
暫無

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

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