Find first k largest elements?
13 次查看(过去 30 天)
显示 更早的评论
Hi all
I have an array say A = [1 5 7 4 8 10 14]. I want to find most largest, second most largest and 3rd most largest elements from A.
I have figured out that it can be done using maxk function which is abailable for update version of Matlab but I am using R2017a where maxk function is not availablle.
Anyway, I want to see the output like Ans = [14 10 8]. Please help.Thanks in advance.
0 个评论
采纳的回答
Matt J
2021-8-13
编辑:Matt J
2021-8-13
The efficient way would probably be to use a File Exchange MEX alternative to maxk() like this,
but you could also do,
A = [1 5 7 4 8 10 14];
B=sort(A,'descend');
B=B(1:3)
2 个评论
Matt J
2021-8-13
I wouldn't recommend that.
A=rand(3e7,1);
tic;
B=maxk(A,3);
toc
tic;
B=sort(A,'descend');
B=B(1:3);
toc;
tic;
[~,idx]=sort(A);
B=A(idx(end:end-2));
toc
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!