【问题标题】:how to assign the value of the matrix to the array through a for loop如何通过for循环将矩阵的值分配给数组
【发布时间】:2022-01-05 16:57:17
【问题描述】:

我正在尝试创建一个具有 3 个维度、2 x 2 x 4 的数组。我想将矩阵重复 4 次以构建矩阵。很简单,但到目前为止还没有工作......这是我的代码:

m <- array(0,c(2,2,4))
for (i in 4) {
     m[,,i] <- array(1:4,c(2,2))
 }

结果:

, , 1

     [,1] [,2]
[1,]    0    0
[2,]    0    0

, , 2

     [,1] [,2]
[1,]    0    0
[2,]    0    0

, , 3

     [,1] [,2]
[1,]    0    0
[2,]    0    0

, , 4

     [,1] [,2]
[1,]    1    3
[2,]    2    4

最后一次迭代的预期结果:

, , 1

     [,1] [,2]
[1,]    1    3
[2,]    2    4

, , 2

     [,1] [,2]
[1,]    1    3
[2,]    2    4

, , 3

     [,1] [,2]
[1,]    1    4
[2,]    2    3

, , 4

     [,1] [,2]
[1,]    1    3
[2,]    2    4

【问题讨论】:

  • (i in 4) 只循环 4 次。你想要(i in 1:4)
  • 也可以使用 []
  • @Adam 哦,谢谢,我明白了。

标签: r arrays for-loop matrix


【解决方案1】:

您不需要循环来执行此操作。 array 回收它的输入,所以你可以这样做:

   start_matrix <- matrix(1:4, 2, 2)
   array(start_matrix, dim = c(2,2,4))

【讨论】:

    猜你喜欢
    • 2011-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-14
    • 1970-01-01
    • 2017-12-05
    • 1970-01-01
    相关资源
    最近更新 更多