我正在尝试创建一个包含1000个模拟和252天的蒙特卡洛模拟。所以我需要创建一个1000x252矩阵,我的代码是:
T=252
L=zeros(i)
eps=normrnd(0,1,[i,T])
S0=2809
K=2750
for i=1:252
for c=1:L
S(c,i)=S0*exp((.0295-.5*(.2^2))*.004+.0295*sqrt(.004)*eps(c,i))
end
end
之前,我只有一个for
语句,所以我没有for c=1:L
,
而且我能够产生想要的结果。但是现在我想要1000x252,我得到:
第1列第1列至252正确
第2行到1000,第1列只是第1行第1列的副本
其余的第2到1000行,第2到252列全为零。
我的索引方式还是在for循环中引用变量eps
的方式有问题吗?
答案 0 :(得分:1)
很少犯错
L = 1000;
i
L
替换eps=normrnd(0,1,[i,T])
; S = zeros(L,T);
初始化矩阵S T=252;
L= 1000;
eps=normrnd(0,1,[L,T]);
S0=2809;
K=2750;
S = zeros(L,T);
for i=1:252
for c=1:L
S(c,i)=S0*exp((.0295-.5*(.2^2))*.004+.0295*sqrt(.004)*eps(c,i));
end
end