Check for identical maximum values in an array

32 ビュー (過去 30 日間)
Jane Ak
Jane Ak 2017 年 9 月 6 日
回答済み: Jane Ak 2017 年 9 月 6 日
Hi guys, I have a matrix, A = [2 4 1;8 3 2;8 8 6;4 5 3] As seen, the above matrix has more than one maximum values. How do i write an if statement testing for multiple maximum values? That is: if (code) % if more than one maximum value exists; ...; % do ... end

採用された回答

Walter Roberson
Walter Roberson 2017 年 9 月 6 日
"if more than one maximum value exists in the array pick the first max value and display it's index"
idx = find( A(:) == max(A(:)) );
if length(idx) > 1
disp(idx(1))
end

その他の回答 (3 件)

Star Strider
Star Strider 2017 年 9 月 6 日
Probably the easiest way is to do logical indexing and count the number of non-zero elements to get the number of maximum values:
A = [2 4 1;8 3 2;8 8 6;4 5 3];
nr_maxvals = nnz(A == max(A(:)));
nr_maxvals =
3
  3 件のコメント
Star Strider
Star Strider 2017 年 9 月 6 日
@Walter — Thank you.

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


José-Luis
José-Luis 2017 年 9 月 6 日
編集済み: José-Luis 2017 年 9 月 6 日
Number of maximum values:
numMax=sum(A(:) == max(A(:)));
if numMax > 1
%Do your thing
end
  2 件のコメント
Stephen23
Stephen23 2017 年 9 月 6 日
@Jane Ak: Star Strider already explained that in their answer from three hours ago.

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


Jane Ak
Jane Ak 2017 年 9 月 6 日
Thanks alot guys. I thought I could accept more than 1 answer. you guys are the real MVPs.

カテゴリ

Find more on Operators and Elementary Operations in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by