Return matrix of maximum values

2 views (last 30 days)
Manu Mensa
Manu Mensa on 20 Feb 2019
Commented: Manu Mensa on 21 Feb 2019
I have a matrix of the form:
a =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
column 1 & 2 represent x,y positions while col 3-5 represent intensity. I obtained the maximum and index of the intensity for each position from [M,I] =max(a(:,3:5),[],1). I am struggling with how to obtain the x,y positions corresponding to each maximum intensity. Any help would be appreciated. Thanks.
  2 Comments
madhan ravi
madhan ravi on 20 Feb 2019
explicitly write your desired output
Manu Mensa
Manu Mensa on 20 Feb 2019
Thank you very much.

Sign in to comment.

Accepted Answer

madhan ravi
madhan ravi on 20 Feb 2019
  4 Comments
Stephen23
Stephen23 on 21 Feb 2019
Edited: Stephen23 on 21 Feb 2019
Or without intermediate variables:
>> [M,I] = max(a(:,3:5),[],1);
>> XY = [a(I,1),a(I,2)]
XY =
11 18
10 12
4 6
Manu Mensa
Manu Mensa on 21 Feb 2019
Thank you all very much. It worked.

Sign in to comment.

More Answers (1)

Jos (10584)
Jos (10584) on 20 Feb 2019
maxxy = zeros(3, 2) ; % pre-allocation
for k = 1:3
[~, r] = max(M(:, k+2)) ; % row of maximum value in column k
maxxy(k, :) = M(r, [1 2]) ;
end

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!