如何通过for循环将矩阵的值分配给数组

Posted

技术标签:

【中文标题】如何通过for循环将矩阵的值分配给数组【英文标题】:how to assign the value of the matrix to the array through a for loop 【发布时间】: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 哦,谢谢,我明白了。 【参考方案1】:

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

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

【讨论】:

以上是关于如何通过for循环将矩阵的值分配给数组的主要内容,如果未能解决你的问题,请参考以下文章

如何将数组中的类随机分配给for循环中创建的元素

如何将数组中的类随机分配给for循环中创建的元素

从 for 循环 matlab 内部生成的变量分配向量值

增强的 for 循环不适用于将值分配给数组(Java)[重复]

matlab 二维矩阵for循环逐行赋值

如何使用for循环将返回值分配给变量