Find a Maximum in a Matrix

3 visualizzazioni (ultimi 30 giorni)
Florian
Florian il 16 Lug 2012
Hello all,
I am trying to find a maximum in a 484x1800 matrix. Particularly i´d need the index of the maximum of each row.
The result should be a 484x1 vector or 1x484 with the index of each maximum on each place of the vector.
I tried a few things with find and max and max(abs.... but it seems that the subscription in a matrix does not fit with these functions.
Please help,
Thanks,

Risposta accettata

Thomas
Thomas il 16 Lug 2012
There probably is a more elegant solution but this should work
a=rand(40,10); %some random 40x10 data
for i=1:length(a)
[~,c(i),~]=find(a(i,:)==max(a(i,:)));
end
values=max(a,[],2);
% this is the largest value in each row and its position in the row
output=[c' values]

Più risposte (1)

Sean de Wolski
Sean de Wolski il 16 Lug 2012
X = rand(484,1800);
[maxval,idxmax] = max(X,[],2)
and for more info
doc max
  1 Commento
Thomas
Thomas il 16 Lug 2012
+1 I forgot that max gives the value and index.. :)

Accedi per commentare.

Categorie

Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by