声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1176|回复: 6

[编程技巧] 求教为何两层循环总不能得到预期的结果

[复制链接]
发表于 2007-12-23 01:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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

[ 本帖最后由 eight 于 2007-12-23 10:52 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-12-23 10:51 | 显示全部楼层
原帖由 dv/dt 于 2007-12-23 01:16 发表
我今日用matlab时出现一个BUG,为什么我用两层循环时,结果总不是预期的,返回的矩阵元素总是莫名其妙地变多,但我去掉第一层循环后,手动代替电脑进行第一层循环而保留第二层循环再运行,结果就对了,WHY?:@L

肯定不是matlab的问题,而是你编程的问题。贴一下代码吧
 楼主| 发表于 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([real(Q(n)-Q(i)),imag(Q(n)-Q(i))]);
    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 的帖子

先考虑是否真的有必要进行双重循环
 楼主| 发表于 2007-12-23 16:31 | 显示全部楼层

回复 #4 花如月 的帖子

我觉得我想不出其他方法来完成要求,我也知道用matlab循环嵌套不好。我试着用了If来代替第一层循环,再每次让n加上1,再进入第二层循环,结果还是有问题。我以前不怎么用matlab,所以也不知道哪里有问题。
发表于 2007-12-23 16:38 | 显示全部楼层
1. 问题没有讲清楚(背景?);
2.代码没法调试;
这种问问题的方式本论坛是相当不鼓励的...
发表于 2007-12-23 23:37 | 显示全部楼层
请楼主先认真阅读一下置顶帖:聚宝盆,然后重新清楚地叙述你的问题,别浪费大家的时间。

你说你刚接触 matlab ,很多东西不懂,这个我们理解。但是,如果缺乏理科的逻辑思维,缺乏清晰的表达能力,那就恕我们无能为力了
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-23 17:19 , Processed in 0.053916 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表