全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
1144 0
2013-04-06
下面这段城区中有两个循环:
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只能取一个值?



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群