Получение индексов максимальных значений столбцов матрицы в MATLAB

#matlab #matrix

#matlab #матрица

Вопрос:

Мне нужно получить индексы максимальных значений столбцов в матрице, например:

 a =
    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1  
  

и я хочу получить

 [1, 4, 4, 1] 
  

которые являются индексами 16,14,15,13, т. Е. максимальным значением в каждом столбце. Я обнаружил, что

 max(a,[],1) 
  

ВОЗВРАТ

 [16, 14, 15, 13]  
  

Как я могу получить их индексы?

Ответ №1:

Вам нужно найти индексы, а не сами числа, поэтому вам нужен второй выходной аргумент.

 [~,I] = max(a)
  

Комментарии:

1. о, ~ это аккуратный трюк. обычно я просто использую ненужную переменную.

2. @thang: Хотя я думаю, что это не поддерживалось в предыдущих версиях MATLAB

3. @AlirezaMirian Это поддерживалось в течение последних четырех лет, так что я думаю, что это довольно надежное предположение.