Это материал Comp Sci 101, но я не смог найти ответ, применимый к R (или Matlab).
У меня есть цикл for
, который я хочу инициализировать первым предположением (все нули здесь, но, возможно, что-то еще позже), но я хочу продолжать обновляться с каждой итерацией. То, что я имею ниже, работает, но это отчасти неуклюже и смущает.
Я бы хотел избежать одной итерации до цикла for
. Я мог бы сделать это с ifelse
внутри цикла, но это кажется неэффективным. Спасибо!
alpha <- 0.3
beta <- 0.6
m <- 5 # elements in k
n <- 10 # iterations
k.prime <- v <- matrix(0, n, m)
k <- seq(from=0.04, to=0.2, length.out=m) # poss values for k
colnames(v) <- colnames(k.prime) <- round(k, digits=2)
# first loop for taking the first guess for v()
i <- 1
for (j in 1:m) {
temp.v <- log(k[j]^alpha - k) + beta*rep(0, times=m)
v[i, j] <- max(temp.v)
k.prime[i, j] <- k[which.max(temp.v)]
}
# remaining loops
for (i in 2:n) {
for (j in 1:m) {
temp.v <- log(k[j]^alpha - k) + beta*v[i-1, ]
v[i, j] <- max(temp.v)
k.prime[i, j] <- k[which.max(temp.v)]
}
}
v
k.prime