楼主: peter
1181 0

[问答] 请教一个matlab的循环程序 [推广有奖]

  • 4关注
  • 7粉丝

已卖:211份资源

学科带头人

27%

还不是VIP/贵宾

-

威望
0
论坛币
20263 个
通用积分
7.2198
学术水平
13 点
热心指数
13 点
信用等级
13 点
经验
5185 点
帖子
1105
精华
0
在线时间
1853 小时
注册时间
2005-3-10
最后登录
2025-12-7

楼主
peter 发表于 2013-4-6 14:02:48 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

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



二维码

扫码加我 拉你入群

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

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

关键词:MATLAB matla atlab Atl Lab 程序 matlab

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-4 18:31