急求帮助,怎样用matlab输出杨辉三角第n行

第n行的数字

n=input('请输入行数:')
yh=1;
for k=2:n
yh=[yh,0]+[0,yh];
yh(k)=1;
end
disp(['杨辉三角第',num2str(n),'行数据:']);
disp(yh)

直接在命令窗口输入上程序,当让输入想要的行数时候,输入数字,然后就会返回所需要行的值。追问

其实这道题我已经知道了,希望能帮我解决下面这个。能解决就追加分~~谢谢

matlab可以利用sort命令实现对数组的排序。例如
A=[ 4 2 8 9 7];
[B, I]=sort(A);
的结果为
B=2 4 7 8 9
I=2 1 5 3 4
其中B为数组中从小到大的排列,I为B 中元素在A中的相应位置,也就是说
B(k)=A(I(k))。
试定义一个函数实现这样的数组排序功能。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-05
下面的程序应该可以实现你追问中的功能
function [B I]=mysort(A)
n=length(A);
I=1:n;
B=A;
for i=1:n-1
for j=i:n
if(B(j)<B(i))
t=B(i);
B(i)=B(j);
B(j)=t;

t=I(i);
I(i)=I(j);
I(j)=t;
end
end
end

测试:
A=[ 4 2 8 9 7];

>> [B1, I1]=mysort(A)
B1 =
2 4 7 8 9
I1 =
2 1 5 3 4
>> [B, I]=mysort(A)
B =
2 4 7 8 9
I =
2 1 5 3 4
如果有问题可追问本回答被提问者采纳
相似回答