construct anonymous function that returns the argmax of two symbolic variables

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

 Réponse acceptée

Mischa Kim
Mischa Kim le 29 Avr 2014
Modifié(e) : Mischa Kim le 29 Avr 2014
Leo, use
symMax = @(x) [max(x) find(x==max(x))]
symMax([3,4])

Plus de réponses (1)

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!

Catégories

En savoir plus sur Communications Toolbox dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by