Ci sono un paio di modi in cui puoi farlo a seconda di come vuoi gestire i valori ripetuti. Ecco una soluzione che trova indici per i 5 valori più grandi (che potrebbe includere valori ripetuti):
[sortedValues,sortIndex] = sort(A(:),'descend'); %# Sort the values in
%# descending order
maxIndex = sortIndex(1:5); %# Get a linear index into A of the 5 largest values
Ecco una soluzione che trova 5 maggiori uniche valori, poi trova tutti gli elementi uguali a quei valori:
sortedValues = unique(A(:)); %# Unique sorted values
maxValues = sortedValues(end-4:end); %# Get the 5 largest values
maxIndex = ismember(A,maxValues); %# Get a logical index of all values
%# equal to the 5 largest values
Una precisazione: come si vorrebbe fare con elementi ripetuti? Ad esempio, se il numero 32 è apparso 7 volte, vorresti ottenere indici per tutti i 7, o solo cinque di essi, o solo 1 di essi e quindi indici per i successivi 4 elementi più grandi? – gnovice
@Eric Leschinski Si prega di non aggiungere tag ai titoli, non è necessario e generalmente scoraggiato dalla comunità (vedi [questo meta post per la risposta ufficiale su questo argomento] (http://meta.stackexchange.com/a/ 5069/151385)) –