How to get the index of maximum value in each row of a matrix?

44 visualizaciones (últimos 30 días)
SUNANNA S S
SUNANNA S S el 18 de Abr. de 2017
Comentada: Bryan Chambers el 19 de Feb. de 2020
For eg, Matrix A=[1 2 3;2 0 0; 3 8 5 ]; The result I want to get is:
[p q]=1 3
2 1
3 2
I tried this
[p,q] = max(A,[],2);
but, it's not my desired output. Thanks in advance.

Respuestas (3)

Thorsten
Thorsten el 18 de Abr. de 2017
[~, q] = max(A, [], 2) ;
p = (1:size(A, 1))';

KSSV
KSSV el 18 de Abr. de 2017
A=[1 2 3;2 0 0; 3 8 5 ];
[val,idx] = max(A,[],2) ;
[~,j] = ind2sub(size(A(1,:)),idx) ;
i = [1:size(A,1)]' ;
[i j]
There would be more elegant solution than this.

Fahim MUMAND
Fahim MUMAND el 15 de Oct. de 2019
What if
M =
7 8 8 2
1 8 1 7
9 4 10 4
10 7 1 10
7 10 1 1
and I want the indices of maximums (for example there are two in first row)?
  2 comentarios
Stephen23
Stephen23 el 15 de Oct. de 2019
>> V = max(M,[],2);
>> idx = M==V % logical indices
idx =
0 1 1 0
0 1 0 0
0 0 1 0
1 0 0 1
0 1 0 0
>> [row,col] = find(idx) % subscript indices
row =
4
1
2
5
1
3
4
col =
1
2
2
2
3
3
4

Iniciar sesión para comentar.

Categorías

Más información sobre Signal Generation and Preprocessing en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by