Find a Maximum in a Matrix

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,

 採用された回答

Thomas
Thomas 2012 年 7 月 16 日

0 投票

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]

その他の回答 (1 件)

Sean de Wolski
Sean de Wolski 2012 年 7 月 16 日

3 投票

X = rand(484,1800);
[maxval,idxmax] = max(X,[],2)
and for more info
doc max

1 件のコメント

Thomas
Thomas 2012 年 7 月 16 日
+1 I forgot that max gives the value and index.. :)

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeCreating and Concatenating Matrices についてさらに検索

質問済み:

2012 年 7 月 16 日

Community Treasure Hunt

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

Start Hunting!

Translated by