Предположим, что следующий код предназначен для выполнения следующих действий: Для различных значений g
я хочу создать массив с таблицами, которые заполняются из результатов функции Vijk
.Так что получается, что для g=1
алгоритм запускается и заполняет VijkArray
, затем я хочу вставить этот массив в result.1[3,2,1:3]
.Для g=2
та же процедура, но теперь заполняем `result.1 [3,2,4: 6] и т. Д. Моя проблема в том, как сделать так, чтобы этот последний шаг состоялся, потому что сейчас происходит то, что первые 3 частииз массива продолжают перезаписываться, я понимаю почему, но не смог преодолеть его.
g=c(0.65,0.70,0.75,0.80,0.85)
result.1 <- array(0, dim = c(3,2,15))
VijkArray <- array(0,dim=c(3,2,3))
for(t in 1:length(g)){
for (i in 1:3) {
for (j in 1:3) {
for (q in 1:2) {
x <-xnew1[i,q,j]
VijkArray[i,q,j]<-Vijk(x,q) #call Vijk function and update the criterion value accordingly
result.1[i,q,j]<-VijkArray[i,q,j]
}
}
}
}
Пример .Rdata среды для использования
>result.1
, , 1
[,1] [,2]
[1,] 0.000000 0.5285917
[2,] -1.433881 -0.5823365
[3,] -1.866261 -1.1893313
, , 2
[,1] [,2]
[1,] -0.5823365 0.4061262
[2,] -1.6576946 -0.9137839
[3,] -2.0629455 -1.4338807
, , 3
[,1] [,2]
[1,] -0.9137839 0.2588162
[2,] -1.8662608 -1.1893313
[3,] -2.2500000 -1.6576946
, , 4
[,1] [,2]
[1,] 0 0
[2,] 0 0
[3,] 0 0
, , 5
[,1] [,2]
[1,] 0 0
[2,] 0 0
[3,] 0 0
, , 6
[,1] [,2]
[1,] 0 0
[2,] 0 0
[3,] 0 0
, , 7
[,1] [,2]
[1,] 0 0
[2,] 0 0
[3,] 0 0
, , 8
[,1] [,2]
[1,] 0 0
[2,] 0 0
[3,] 0 0
, , 9
[,1] [,2]
[1,] 0 0
[2,] 0 0
[3,] 0 0
, , 10
[,1] [,2]
[1,] 0 0
[2,] 0 0
[3,] 0 0
, , 11
[,1] [,2]
[1,] 0 0
[2,] 0 0
[3,] 0 0
, , 12
[,1] [,2]
[1,] 0 0
[2,] 0 0
[3,] 0 0
, , 13
[,1] [,2]
[1,] 0 0
[2,] 0 0
[3,] 0 0
, , 14
[,1] [,2]
[1,] 0 0
[2,] 0 0
[3,] 0 0
, , 15
[,1] [,2]
[1,] 0 0
[2,] 0 0
[3,] 0 0
Вы будетеобратите внимание, что все результаты продолжают отображаться в первых 3 таблицах массива.Таким образом, для 1-го g
должны быть заполнены первые 3 таблицы, затем для второго g
должны быть заполнены таблицы 4,5 и 6 и т. Д.