Finding element with max value in each row of a matrix
1 回表示 (過去 30 日間)
古いコメントを表示
How can I find the 4 elements with the largest values in each row of a matrix ? Moreover, I would like to know the exact position of them in each row.
i.e. A(2X8) = [ 1 2 3 4 8 5 2 9 ; 5 6 4 7 9 1 1 2; ]
For the above matrix the answer would be:
1st row max values elements: 4, 8, 5, 9
1st row position of these elements: 4, 5, 6, 8
2nd row max values elements: 5, 6, 7, 9
2nd row position of these elements: 1, 2, 4, 5
Any help could be useful.
Thanks in advance!
0 件のコメント
採用された回答
Azzi Abdelmalek
2014 年 12 月 4 日
編集済み: Azzi Abdelmalek
2014 年 12 月 4 日
a=[ 1 2 3 4 8 5 2 9 ; 5 6 4 7 9 1 1 2; ]
[ii,jj]=sort(a,2,'descend')
v=ii(:,1:4)
idx=jj(:,1:4)
その他の回答 (1 件)
Guillaume
2014 年 12 月 4 日
編集済み: Guillaume
2014 年 12 月 4 日
sort your matrix by column and in descending order. The first argument returned are the max, the second their indices:
A = [1 2 3 4 8 5 2 9 ; 5 6 4 7 9 1 1 2]
[maxvals, maxindices] = sort(A, 2, 'descend');
maxvals = maxvals(:, 1:4)
maxindices = maxindices(:, 1:4)
3 件のコメント
Guillaume
2014 年 12 月 4 日
Yes, I forgot the colon initially. However, I corrected that mistake before you made the comment.
My answer is identical to Azzi's except mine got some explanation (and useful variable names).
参考
カテゴリ
Help Center および File Exchange で Logical についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!