construct anonymous function that returns the argmax of two symbolic variables

1 view (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!

Categories

Find more on Symbolic Math Toolbox in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!