gpt4 book ai didi

r - 使用R在矩阵中循环

转载 作者:行者123 更新时间:2023-12-02 01:06:26 24 4
gpt4 key购买 nike

我必须将 54 个矩阵放入名为 A 的向量列表中。我希望此列表中的前 25 个矩阵为零矩阵,但矩阵的第 (i,j) 个元素除外,该元素应等于 1。我所有的矩阵都是 5x5。我正在使用 for 循环,但我不明白如何创建前 25 个矩阵。

现在我尝试用 (i:(i-1),j:(j-1))th element = 1 制作 16 个 0 的矩阵,这样就有一个大小为 2 x 2 的 1 的正方形。为此,我使用了以下代码,但我想确保“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)
}

关于r - 使用R在矩阵中循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47321109/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com