matlab里提取一个向量的20个最大值

一个行向量,1*1000的,找出里面最大的20个值,求代码
找出的20个值还要有对应的位置标记,就是第几列都是选中的20个数

x=round(1000*rand(1,100));
y=zeros(2,20);
for i=1:20
[p,q]=max(x);
x(q)=-inf;
y(1,i)=q; %位置
y(2,i)=p;%该点数的大小
end
y
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-25
a=randperm(1000);
[i,j]=sort(a,'descend')
[i(1:20); j(1:20)]
相似回答