【问题标题】:Transform a vector to a 3-dimensional matrix将向量转换为 3 维矩阵
【发布时间】:2017-06-25 17:51:53
【问题描述】:

我想要这个向量

v <- c(111,112,121,122,211,212,221,222)

要转换成一个3维矩阵,这样结果就变成这样了:

,,1
111 112
121 122
,,2
211 212
221 222

使用dim(v) &lt;- c(2,2,2) 会产生类似的结构

,,1
     [,1] [,2]
[1,]  111  121
[2,]  112  122

,,2  
     [,1] [,2]
[1,]  211  221
[2,]  212  222

我想有一种非常简单的方法可以做到这一点,但我想我在 Google 中使用了错误的关键字。感谢您的帮助!

【问题讨论】:

    标签: arrays r matrix


    【解决方案1】:

    通常很难知道您在做什么,但是对于您给定的示例,我看到在dim(v) &lt;- c(2,2,2) 之后,结果数组与您的预期输出通过转置/排列不同。所以我愿意

    aperm(v, c(2,1,3))
    

    也就是说,我们正在做:

    for (i in 1:2) v[,,i] <- t(v[,,i])
    

    【讨论】:

      猜你喜欢
      • 2012-06-22
      • 2013-05-26
      • 1970-01-01
      • 2016-02-02
      • 2017-06-10
      • 2018-10-01
      • 1970-01-01
      • 2021-04-29
      • 2010-12-28
      相关资源
      最近更新 更多