how can I get the min and corresponding max in matrix?

2 views (last 30 days)
I want to find the max in a matrix r*2 where r=1 up to 10 depends on the input from the user. and then return the min corresponding element in that row to the max.
Ex.
x=[5 2;4 1;1 3];
x_max1=max(x(:,1)); x_min1=min(x(:,1));
x_max2=max(x(:,2)); x_min2=min(x(:,2)); % for second column
x_max=max(x_max1,x_max2); x_min=min(x_min1,x_min2);
this code will return, max as 5 and min as 1 while I want the code to return the max which is 5 and the corresponding element in that row which is 2'? Also, if there is another way to simplify the code will be also helpful

Accepted Answer

Image Analyst
Image Analyst on 26 Sep 2016
Try this:
x=[5 2;
4 1;
1 3];
% Get max in either column
maxValue = max(x(:))
% Find out what row and column it apepars at.
[row, column] = find(x == maxValue)
% Get the min value at that row.
minValue = min(x(row, :))
  2 Comments
JacobM
JacobM on 26 Sep 2016
Edited: Walter Roberson on 26 Sep 2016
works perfect! but when I have another max it will return two values while I want only one value.
Ex. x=[5 2;4 1;1 5];
the max is 5 and this code will return both corresponding values to 5, which are 2 and 1. can I just get the min one which is 1 and let the code ignore the other value? and thanks for your input

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!