【问题标题】:Generate matrix with for loop使用 for 循环生成矩阵
【发布时间】:2018-10-19 00:50:35
【问题描述】:

我有一个问题:

在条目上使用 for 循环生成以下矩阵。

structure(c(3, 2, 2, 2, 2, 1, 3, 0, 0, 0, 1, 0, 3, 0, 0, 1, 0, 
            0, 3, 0, 1, 0, 0, 0, 3), .Dim = c(5L, 5L))
#      [,1] [,2] [,3] [,4] [,5]
# [1,]    3    1    1    1    1
# [2,]    2    3    0    0    0
# [3,]    2    0    3    0    0
# [4,]    2    0    0    3    0
# [5,]    2    0    0    0    3

到目前为止,我的代码是:

z<-matrix(NA,ncol=5,nrow=5)
q<-1:5

 for(n in 1:nrow(z)){
  z[n,] = q
  }
print(z)

我无法形成矩阵。有什么建议么?

【问题讨论】:

  • 谢谢,但我们必须使用 for 循环,即使您的回答不那么紧张:)

标签: r for-loop matrix


【解决方案1】:

此解决方案使用嵌套的 for 循环和 if-else 语句。

z <- matrix(NA, ncol = 5, nrow = 5)

for (i in 1:nrow(z)){
  for (j in 1:nrow(z)){
    if (i == j){
      z[i, j ] <- 3
    } else if (i == 1){
      z[i, j ] <- 1
    } else if (j == 1){
      z[i, j ] <- 2
    } else {
      z[i, j ] <- 0
    }
  }
}

print(z)
#      [,1] [,2] [,3] [,4] [,5]
# [1,]    3    1    1    1    1
# [2,]    2    3    0    0    0
# [3,]    2    0    3    0    0
# [4,]    2    0    0    3    0
# [5,]    2    0    0    0    3

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-11
    • 2016-08-21
    • 2011-09-29
    • 1970-01-01
    • 2013-07-30
    • 1970-01-01
    相关资源
    最近更新 更多