Check for identical maximum values in an array
Show older comments
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
Accepted Answer
More Answers (3)
Star Strider
on 6 Sep 2017
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 Comments
Jane Ak
on 6 Sep 2017
Walter Roberson
on 6 Sep 2017
if nnz(A == max(A(:))) > 1
...
end
Star Strider
on 6 Sep 2017
@Walter — Thank you.
Number of maximum values:
numMax=sum(A(:) == max(A(:)));
if numMax > 1
%Do your thing
end
2 Comments
Stephen23
on 6 Sep 2017
@Jane Ak: Star Strider already explained that in their answer from three hours ago.
Jane Ak
on 6 Sep 2017
0 votes
Categories
Find more on Resizing and Reshaping Matrices 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!