How to remove double loop?
Read the posting guide (the bit about reproducible code):
OVal <- matrix(0, n+1, n+1)
for(i in 0:n){
+ OVal[i+1, n+1] <- max(Val[i+1, n+1]-K, 0) + } Error: object "Val" not found
for(i in seq(n,1, by=-1)){
+ for(j in 0:(i-1)){
+ OVal[j+1, i] <- a*((1-p)*OVal[j+1, i+1]+p*OVal[j+2, i+1])
+ }
+ }
Error: object "p" not found
On Thu, 20 Mar 2008, Jonas Malmros wrote:
Bill, Alberto, Gabor,
Thank you for answering my question. Now I learned about outer() function.
That was a straightforward example.
But what if I had a matrix, where the last column was filled with
values first (again, a for loop), and the rest was filled by using a
double loop?
OVal <- matrix(0, n+1, n+1)
for(i in 0:n){
OVal[i+1, n+1] <- max(Val[i+1, n+1]-K, 0)
}
for(i in seq(n,1, by=-1)){
for(j in 0:(i-1)){
OVal[j+1, i] <- a*((1-p)*OVal[j+1, i+1]+p*OVal[j+2, i+1])
}
}
Even if I leave the first simple for loop as it is, is there a more
efficient way to program the double loop part now that OVal is used
within the function itself?
It is pretty easy to write for loops, but it is very hard to write
computationally optimal code. :-( Could you please help me with the
above one, if possible?