There are a couple ways you can do this depending on how you want to deal with repeated values. Here's a solution that finds indices for the 5 largest values (which could include repeated values) using sort
:
[~, 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
Here's a solution that finds the 5 largest unique values, then finds all elements equal to those values (which could be more than 5 if there are repeated values), using unique
and ismember
:
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
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…