Есть несколько способов сделать это в зависимости от того, как вы хотите работать с повторяющимися значениями.Вот решение, которое находит индексы для 5 самых больших значений (которые могут включать повторяющиеся значения), используя 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
Вот решение, которое находит 5 самых больших уникальных значений, затем находит всех элементов, равных этим значениям (которые могут быть больше 5, если есть повторяющиеся значения), используя unique
и 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