max and min values in an array

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 个评论

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

请先登录,再进行评论。

回答(2 个)

the cyclist
the cyclist 2016-12-12
编辑:the cyclist 2016-12-12
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 个评论

Thank you. It works
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.
@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.

请先登录,再进行评论。

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

类别

帮助中心File Exchange 中查找有关 Matrix Indexing 的更多信息

提问:

2016-12-12

评论:

dpb
2016-12-12

Community Treasure Hunt

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

Start Hunting!

Translated by