dv/dt 发表于 2007-12-23 01:16

求教为何两层循环总不能得到预期的结果

我今日用matlab时出现一个BUG,为什么我用两层循环时,结果总不是预期的,返回的矩阵元素总是莫名其妙地变多,但我去掉第一层循环后,手动代替电脑进行第一层循环而保留第二层循环再运行,结果就对了,WHY?:@L

[ 本帖最后由 eight 于 2007-12-23 10:52 编辑 ]

eight 发表于 2007-12-23 10:51

原帖由 dv/dt 于 2007-12-23 01:16 发表 http://www.chinavib.com/forum/images/common/back.gif
我今日用matlab时出现一个BUG,为什么我用两层循环时,结果总不是预期的,返回的矩阵元素总是莫名其妙地变多,但我去掉第一层循环后,手动代替电脑进行第一层循环而保留第二层循环再运行,结果就对了,WHY?:@L
肯定不是matlab的问题,而是你编程的问题。贴一下代码吧

dv/dt 发表于 2007-12-23 14:13

回复 #2 eight 的帖子

这是代码(有问题的一段):
temptry=zeros(1,100);
for n=1:(length(Q)-1)
    for i=(n+1):length(Q)
      temptry(i)=norm();
    end
    b=temptry(find(temptry~=0));
    k=find(temptry==b(1));
    findmin=find(b==min(b))+k-1;
    temp=Q(n+1);
    Q(n+1)=Q(findmin(1));
    Q(findmin)=temp;
end

花如月 发表于 2007-12-23 15:23

回复 #3 dv/dt 的帖子

先考虑是否真的有必要进行双重循环

dv/dt 发表于 2007-12-23 16:31

回复 #4 花如月 的帖子

我觉得我想不出其他方法来完成要求,我也知道用matlab循环嵌套不好。我试着用了If来代替第一层循环,再每次让n加上1,再进入第二层循环,结果还是有问题。我以前不怎么用matlab,所以也不知道哪里有问题。

xjzuo 发表于 2007-12-23 16:38

1. 问题没有讲清楚(背景?);
2.代码没法调试;
这种问问题的方式本论坛是相当不鼓励的...

eight 发表于 2007-12-23 23:37

请楼主先认真阅读一下置顶帖:聚宝盆,然后重新清楚地叙述你的问题,别浪费大家的时间。

你说你刚接触 matlab ,很多东西不懂,这个我们理解。但是,如果缺乏理科的逻辑思维,缺乏清晰的表达能力,那就恕我们无能为力了
页: [1]
查看完整版本: 求教为何两层循环总不能得到预期的结果