max and min values in an array

106 views (last 30 days)
Deep P
Deep P on 12 Dec 2016
Commented: dpb on 12 Dec 2016
Hello,
I am trying to find positive and negative maximum and minimum in an array.
Lets say I have a Matrix A=[1 -2 5;3 7 -9,4 6 8] if I use max and min functions on A,I get max(A)=[4 7 8] and min(A)=[1 -2 -9]. Since I wanted one singe number I performed max and min operations again.
max(max(A))= 8 and min(min(A))=-9
My requirement here is to get both positive and negative maximum and positive and negative minimum. Is there any way to find that?
Thank you.
  1 Comment
the cyclist
the cyclist on 12 Dec 2016
Your language is not very clear to me. By "maximum" and "minimum", are you talking about the magnitude? So, is the following correct?
  • Maximum (magnitude) positive = 8
  • Minimum (magnitude) positive = 1
  • Maximum (magnitude) negative = -9
  • Minimum (magnitude) positive = -2

Sign in to comment.

Answers (2)

the cyclist
the cyclist on 12 Dec 2016
Edited: the cyclist on 12 Dec 2016
If what I said in my comment is correct, then do the following:
maxMagPos = max(A(A>0))
minMagPos = min(A(A>0))
maxMagNeg = min(A(A<0))
minMagNeg = max(A(A<0))
  3 Comments
the cyclist
the cyclist on 12 Dec 2016
The best form of thanks is upvoting and/or accepting answers. This rewards the contributor, and points future users to good answers.
I suggest you open a new post for your second question, which is quite different in nature, not really related to this one.
dpb
dpb on 12 Dec 2016
@OP If this is something you do more than once, then I'd suggest writing a little utility function that returns the values in a single call; either the four variables or an array depending on how your application most frequently would use the results.

Sign in to comment.


dpb
dpb on 12 Dec 2016
It's the colon operator that's your friend here...
mnx=min(x(:)); % doc colon for details of the "magic" here...

Community Treasure Hunt

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

Start Hunting!