How to get the index of maximum value in each row of a matrix?
21 views (last 30 days)
Show older comments
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.
0 Comments
Answers (3)
KSSV
on 18 Apr 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.
0 Comments
Fahim MUMAND
on 15 Oct 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 Comments
Stephen23
on 15 Oct 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
See Also
Categories
Find more on Signal Generation and Preprocessing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!