求教为何两层循环总不能得到预期的结果
我今日用matlab时出现一个BUG,为什么我用两层循环时,结果总不是预期的,返回的矩阵元素总是莫名其妙地变多,但我去掉第一层循环后,手动代替电脑进行第一层循环而保留第二层循环再运行,结果就对了,WHY?:@L[ 本帖最后由 eight 于 2007-12-23 10:52 编辑 ] 原帖由 dv/dt 于 2007-12-23 01:16 发表 http://www.chinavib.com/forum/images/common/back.gif
我今日用matlab时出现一个BUG,为什么我用两层循环时,结果总不是预期的,返回的矩阵元素总是莫名其妙地变多,但我去掉第一层循环后,手动代替电脑进行第一层循环而保留第二层循环再运行,结果就对了,WHY?:@L
肯定不是matlab的问题,而是你编程的问题。贴一下代码吧
回复 #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
回复 #3 dv/dt 的帖子
先考虑是否真的有必要进行双重循环回复 #4 花如月 的帖子
我觉得我想不出其他方法来完成要求,我也知道用matlab循环嵌套不好。我试着用了If来代替第一层循环,再每次让n加上1,再进入第二层循环,结果还是有问题。我以前不怎么用matlab,所以也不知道哪里有问题。 1. 问题没有讲清楚(背景?);2.代码没法调试;
这种问问题的方式本论坛是相当不鼓励的... 请楼主先认真阅读一下置顶帖:聚宝盆,然后重新清楚地叙述你的问题,别浪费大家的时间。
你说你刚接触 matlab ,很多东西不懂,这个我们理解。但是,如果缺乏理科的逻辑思维,缺乏清晰的表达能力,那就恕我们无能为力了
页:
[1]