find index of last 5 largest values in cell array

2 visualizzazioni (ultimi 30 giorni)
I have a cell array of numbers a = {5 ; 6 ; 8 ; 8 ; 10; 1 ; 15 ; 25 ; 10 ; 35 ; 45 ; 3}
I need to find the index of last five largest values in cell array
index = 11,10,8,7,5
How can i do this ?
Thanks a lot

Risposta accettata

Star Strider
Star Strider il 24 Ago 2015
This works:
[as,idx] = sort(cell2mat(a),'descend');
result = idx(1:5);
  2 Commenti
Gopalakrishnan venkatesan
Gopalakrishnan venkatesan il 24 Ago 2015
Modificato: Gopalakrishnan venkatesan il 24 Ago 2015
Thank you. How to avoid the repetition index , for example if my cell array consists of
a = {10,10,5,10,3,6,6,3,6,9,8}
index = 1, 10, 11 , 6, 3
Star Strider
Star Strider il 24 Ago 2015
My pleasure.
The unique function works for the second problem:
[C,idx] = unique(cell2mat(a));
result = idx(end-4:end);

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Matrices and Arrays in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by