【问题标题】:multi-dimensional array from another matrix来自另一个矩阵的多维数组
【发布时间】:2019-06-30 21:34:50
【问题描述】:

假设

t=c(0,0.5,0.7,0.9,1,1.2) and 
v=matrix(1:40, nrow=5, ncol=8)
v
    [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,]    1    6   11   16   21   26   31   36
[2,]    2    7   12   17   22   27   32   37
[3,]    3    8   13   18   23   28   33   38
[4,]    4    9   14   19   24   29   34   39
[5,]    5   10   15   20   25   30   35   40

我想做一个 5x6x4 的数组。

array <- array(NA, dim = c(5, 6, 4))

5 是行数,6 是t 的长度,4 是数组数。要创建第一个数组,我想只考虑 v 的前两列,并且对于每个时间点,第一个矩阵的第一个元素由 v[1,1]+v[1,2]*t[] 填充,这是第一个矩阵的第一个元素的值第一个数组的值是数组 [1,1,1] , 同样, array[2,1,1]e v[2,1]+v[2,2]*t[1] 对于第二个数组,只考虑 v 的第 3 列和第 4 列。对于第三个数组,只考虑 v 的第 5 列和第 6 列,最后,对于第四个数组,考虑 v 的最后两列。 如果有人可以帮助我使用 for 循环或其他方式,我将不胜感激? 谢谢

【问题讨论】:

    标签: arrays r for-loop matrix


    【解决方案1】:

    试试这些嵌套循环:

    ary <- array(NA, dim = c(5, 6, 4))
    
    for (i in 1:5) {
      for (j in 1:6) {
        for (k in 1:4) {
          ary[i, j, k] <- v[i, k * 2 - 1] + v[i, k * 2] * t[j]
        }
      }
    }
    

    【讨论】:

    • 是否有任何内置函数可以在不使用嵌套循环的情况下创建这些?@eastclintw00d
    猜你喜欢
    • 2017-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-12
    • 2014-04-23
    • 1970-01-01
    • 2020-03-19
    相关资源
    最近更新 更多