下面这段城区中有两个循环:
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只能取一个值?