kapuliyuehan 发表于 2006-11-12 19:55

错在哪里?

我编写了这样一个将X由小到大排列,而与X有相同下标的Y也变到相应位置,我用的是冒泡法,可是结果总是不对,请高手指教,谢谢!
function =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

Tla 发表于 2006-11-12 20:44

在练手是么?
拿去对比一下,没有修改你的程序结构,本来这是不应该用Matlab来编的,有内置函数就能直接实现的吧!

function =wwg(X,Y)
n = length(X);
temp = 0;
for i=1:n
    for j=i+1:n
          if X(i)>X(j)
            temp=X(j);% n都变了,怎能不错!
            X(j)=X(i);
            X(i)=temp;
            r=Y(j);
            Y(j)=Y(i);
            Y(i)=r;
         end
    end
end


:@D

kapuliyuehan 发表于 2006-11-12 20:53

原来是我重定义变量了啊,害我想了好久,谢谢!非常感谢!
页: [1]
查看完整版本: 错在哪里?