Return matrix of maximum values

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 Commenti

explicitly write your desired output
Thank you very much.

Accedi per commentare.

 Risposta accettata

x(I)
y(I)

4 Commenti

Sorry about this, i tried this but i only get one dimension position values. I require the output to be the x,y positions corresponding to the maximum values of the intensity. i.e output should be of the form:
11 18
10 12
4 6
x=a(:,1);
y=b(:,2);
Result=[x(I) y(I)]
Stephen23
Stephen23 il 21 Feb 2019
Modificato: Stephen23 il 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
Thank you all very much. It worked.

Accedi per commentare.

Più risposte (1)

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

Categorie

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by