# Could anyone suggest me is there any way of choosing maximum and minimum values together

1 view (last 30 days)
jaah navi on 17 Oct 2019
Commented: Jos (10584) on 17 Oct 2019
A = [23 42 37 18 52];
With respect to command M = max(A) gives 52
min(A) gives 18
Is there any way so that i can get both 52 and 18 together(maximum and minimum together)
dpb on 17 Oct 2019
mnmx=[min(A) max(A)];
or write your own "syntactic sugar" routine minmax()--
function mnmx=minmax(x)
mnmx=[min(x(:)) max(x(:))];
end
The latter should probably also have the ability to return the locations to mimic builtin interfaces.....and maybe treat arrays the same as them also in working on column-basis by default with the dimension as the optional argument...so many choices to make.

Walter Roberson on 17 Oct 2019
[A_min, A_max] = bounds(A)

Jos (10584) on 17 Oct 2019
Here is a nice trick that also allows you to combine functions in a single call, which also can return the other outputs of these functions:
minmaxFun = @(x) cellfun(@(F) F(x), {@min, @max}) ;
[V, I] = minmaxFun([2 1 3 5 2])
% V = [1 5], I = [2 4]
You can take this a step further:
mapF = @(val, fcns) cellfun(@(f) f(val{:}), fcns) ;
data = randi(10, [1 10])
[minmax, minmaxIDX] = mapF({data}, {@min @max})
S = mapF({data}, {@mean @median @std})

Daniel M on 17 Oct 2019
Edited: Daniel M on 17 Oct 2019
A = [23 42 37 18 52];
minmaxVals = prctile(A,[0 100])
ans =
18 52
Jos (10584) on 17 Oct 2019
I second that, Walter! +1