声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 818|回复: 2

[编程技巧] 错在哪里?

[复制链接]
发表于 2006-11-12 19:55 | 显示全部楼层 |阅读模式

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

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

x
我编写了这样一个将X由小到大排列,而与X有相同下标的Y也变到相应位置,我用的是冒泡法,可是结果总是不对,请高手指教,谢谢!
function [X,Y]=arrange(X,Y,n)
for i=1:n
    for j=i+1:n
          if X(i)>X(j)
              n=X(j);
              X(j)=X(i);
              X(i)=n;
              r=Y(j);
              Y(j)=Y(i);
              Y(i)=r;
         end
    end
end
回复
分享到:

使用道具 举报

发表于 2006-11-12 20:44 | 显示全部楼层
在练手是么?
拿去对比一下,没有修改你的程序结构,本来这是不应该用Matlab来编的,有内置函数就能直接实现的吧!

  1. function [X,Y]=wwg(X,Y)
  2. n = length(X);
  3. temp = 0;
  4. for i=1:n
  5.     for j=i+1:n
  6.           if X(i)>X(j)
  7.               temp=X(j);% n都变了,怎能不错!
  8.               X(j)=X(i);
  9.               X(i)=temp;
  10.               r=Y(j);
  11.               Y(j)=Y(i);
  12.               Y(i)=r;
  13.          end
  14.     end
  15. end

复制代码

:@D
 楼主| 发表于 2006-11-12 20:53 | 显示全部楼层
原来是我重定义变量了啊,害我想了好久,谢谢!非常感谢!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-14 06:37 , Processed in 0.059114 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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