下面这段城区中有两个循环:
runs=1;
runlgth=100;
epl=[0 .1 zeros(1,99)]; % epl为1行100列的矩阵,第一列为0.1,其他列为0
epg=[0 .0 zeros(1,99)];
for j=1:runs
xold=[0];
shockold=[0
0];
for i=1:runlgth
shocknew=N*shockold+[epl(j,i) epg(j,i)]';
x(:,i)=P*xold+Q*shocknew;
y(:,i)=R*xold+S*shocknew;
xold=x(:,i);
shockold=shocknew;
shockm(i,:)=shocknew;
end
end
我不明白的是有关j的那个循环,在哪里runs不就是1吗?那就是说j的取值只能是1了。
这样的话,我这个关于j的循环去掉,把上面红色那一行的j改为1,这样不是更简洁吗?也就是把代码改为:
runlgth=100;
epl=[0 .1 zeros(1,99)]; % epl为1行100列的矩阵,第一列为0.1,其他列为0
epg=[0 .0 zeros(1,99)];
xold=[0];
shockold=[0
0];
for i=1:runlgth
shocknew=N*shockold+[epl(1,i) epg(1,i)]';
x(:,i)=P*xold+Q*shocknew;
y(:,i)=R*xold+S*shocknew;
xold=x(:,i);
shockold=shocknew;
shockm(i,:)=shocknew;
end
但是我这样做了之后,得出的x,y的结果会有细微的不同,也就谁在小数点后第三位会出现不同。请问这个关于j的循环的意义是什么?为什么要把j这个循环放在这里,即使j只能取一个值?


雷达卡



京公网安备 11010802022788号







