Find the last position of maximum value in a Matrix
28 views (last 30 days)
Show older comments
Hello, I try to find the position and the value of a maximum in a Matrix (or in a vektor). There are several positions for the maximas and the function [C,I] = max(...) just return the first, but I need the last position. exists a method to find the last maximum?
0 Comments
Accepted Answer
Wayne King
on 27 Nov 2013
Edited: Wayne King
on 27 Nov 2013
You can use find() with the 'last' argument:
x = randi([1 10],100,1);
maxval = max(x);
I = find(x==maxval,1,'last');
Or for a matrix:
X = randi([1 10],20,20);
maxval = max(X(:));
[I,J] = find(X==maxval,1,'last');
0 Comments
More Answers (2)
Bradley Stiritz
on 31 Jan 2021
@Wayne, is your solution vulnerable to rounding error, with floating-point input? In general, might it not be safer to use something like the following--?
epsilon = 0.0001;
I = find(abs(x-maxval)<epsilon,1,'last');
@Azzi, very clever solution but is it not hard-coded for row vectors? In order to handle column vectors as well, shouldn't the 2nd line be something like the following--?
[ii,jj]=max(fliplr(x(:)'));
0 Comments
See Also
Categories
Find more on Creating and Concatenating 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!