многомерный массив из другой матрицы - PullRequest
1 голос
/ 01 июля 2019

Предположим,

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], аналогично, массив [2,1,1] e v[2,1]+v[2,2]*t[1] Для второго массива рассмотрим только 3-й и 4-й столбцы v. Для третьего массива рассмотримтолько 5-й и 6-й столбцы v и, наконец, для четвертого массива рассмотрим последние два столбца v. Буду признателен, если кто-нибудь сможет помочь мне с использованием цикла for или альтернативных способов?Спасибо

1 Ответ

1 голос
/ 01 июля 2019

Попробуйте эти вложенные циклы:

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]
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...