Предполагать
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 или альтернативных способов?
Спасибо



Попробуйте эти вложенные циклы:
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