2016-02-13 125 views
2

我对以下代码使用R。 我想用下面给出的for循环来填充矩阵s。我的输出不像预期的那样,事实上没有任何元素被填满。请帮忙。提前致谢。使用for循环填充矩阵r不起作用

N<- 3 
S<- 2 
delta = T/N 
u = 2 
d = 1/u 
s<- matrix(NA,N+1,N+1, byrow = TRUE) 
s[1,1]<- S 

for(i in 2:N+1){ 
    for(j in 1:i-1){ 
    s[i,j] <- (s[i-1,j]*u) 
    } 
    s[i,j] <- (s[i-1,j-1]*d) 
} 

s 

My output 
> s 
    [,1] [,2] [,3] [,4] 
[1,] 2 NA NA NA 
[2,] NA NA NA NA 
[3,] NA NA NA NA 
[4,] NA NA NA NA 

请大家帮忙。

回答

0

您在定义中忘记了一些括号。这确实有点令人困惑

for(i in 2:(N+1)){ 
    for(j in 1:(i-1)){ 

似乎有更多的错误,但我不确定你的代码的意图。基本上,内部循环后j将评估为零这将指数

s[i,j] <- (s[i-1,j-1]*d) 

非现有元素0

+0

如果OP可以给这个问题增加更多关于什么需要在每一步它会更容易出现帮助。目前,@ CAFEBABE表示很难看到期望的结果。 – zacdav