用MATLAB编程:输入三个数,按大小顺序排列

最好有从头到尾完整的程序步骤,多谢了

第1个回答  2011-03-31
不会那个函数就自己编了,下面是我编的,输入多少个数都能从大到小排
function y=paixu(a)
n=length(a);
for i=1:n-1
for j=i+1:n
if a(i)<a(j)
temp=a(i);
a(i)=a(j);
a(j)=temp;
end
end
end
y=a;
关闭并保存为paixu.m

输入
a=[3,6,8,3,86,5,43,657,9];
b=paixu(a);
b
得结果
b =

657 86 43 9 8 6 5 3 3
希望有用。。追问

function y=paixu(a)
n=length(a);
for i=1:n-1
for j=i+1:n
if a(i)> 运行不出来啊,怎么回事呢

追答

把定义函数部分和使用部分分开
建一个m文件,输入:
function y=paixu(a)
n=length(a);
for i=1:n-1
for j=i+1:n
if a(i)<a(j)
temp=a(i);
a(i)=a(j);
a(j)=temp;
end
end
end
y=a;
到这里关闭并保存为paixu.m
然后再另外建一个m文件输入
a=[3,6,8,3,86,5,43,657,9];
b=paixu(a);
b
得结果

追问

??? Input argument "a" is undefined.

Error in ==> paixu at 2
n=length(a);
还是不行呢怎么

追答

不要运行上一个定义函数的m文件,把上一个m文件关闭保存为paixu.m
在那个目录下,新建另一个m文件,输入
a=[3,6,8,3,86,5,43,657,9];
b=paixu(a);
b
运行

追问

这么复杂啊,能不能用简单点的if else之类的呢,上面这些命令都没学过,交上去一看就不是我做的了,嘿嘿

追答

好吧,我只不过想弄一个能通用的,你在等等吧,

a=[4,6,9];
if a(1)<a(2)
temp=a(1);
a(1)=a(2);
a(2)=temp;
end
if a(1)<a(3)
temp=a(1);
a(1)=a(3);
a(3)=temp;
end
if a(2)<a(3)
temp=a(2);
a(2)=a(3);
a(3)=temp;
end
a

我里个曲,这个够简单了吧。。。

本回答被提问者和网友采纳
第2个回答  2011-03-31
你是想自己练习写程序还是实际工作需要?追问

是考试用,但是我一点也不会,麻烦了

第3个回答  2011-03-31
告诉你一个函数就搞定了 sort
你help一下追问

我一点都不会,可不可以给一下完整的程序步骤呢,考试用,多谢啦

相似回答