construct anonymous function that returns the argmax of two symbolic variables

3 views (last 30 days)
Hi, I'd like to construct an anonymous function that returns the argmax of two symbolic variables, e.g.,
syms x y
symMax = @(x,y) max(x,y)
symMax(3,4)
returns
4,
but I don't know how to persuade the anonymous function to return the second argument of max, which is 2.
Parenthetically, I can't do this even when x,y are regular variables, but in that case I have more options to work with.
Thanks very much for any advice.
Leo

Accepted Answer

Mischa Kim
Mischa Kim on 29 Apr 2014
Edited: Mischa Kim on 29 Apr 2014
Leo, use
symMax = @(x) [max(x) find(x==max(x))]
symMax([3,4])

More Answers (1)

Leo Simon
Leo Simon on 29 Apr 2014
Wow, so simple, thanks very much indeed! For my purposes
argmax = @(x)(find(x==max(x)))
is perfect, since I only care about the second argument!

Community Treasure Hunt

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

Start Hunting!