作业帮 > 综合 > 作业

求教Matlab编程 求出某向量x前n大元素位置

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/21 10:47:41
求教Matlab编程 求出某向量x前n大元素位置
如向量 x=(0.2 0.3 0.5 0.1 0.8 0.5 0.4 0.7 0.5 0.1 0.5 0.9 0.5)
尽量不用循环,用matlab函数求出x前5大元素的位置,结果如
(12 5 8 3 6)or(12 5 8 3 9).求出一个就行了,主要是不想用循环,那位大虾能给出具体编程,在此谢过
我现在用的就是matlab,只是编个程序,不大,不想再涉及其他软件
% 用max函数(下面程序在matlab里调通了,没问题)
%[y,I]=max(X)返回向量X的最大元素存入y,最大元素的序号存入I
% 假设向量x,x=A是为了不改变原向量
A=x;
[y,a1]=max(A);
A(a1)=-inf;
[y,a2]=max(A);
A(a2)=-inf;
[y,a3]=max(A);
A(a3)=-inf;
[y,a4]=max(A);
A(a4)=-inf;
[y,a5]=max(A);
A(a5)=-inf;
disp('x前5大元素的位置;')
Positions=[a1,a2,a3,a4,a5]