construct anonymous function that returns the argmax of two symbolic variables

10 Ansichten (letzte 30 Tage)
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

Akzeptierte Antwort

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

Weitere Antworten (1)

Leo Simon
Leo Simon am 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!

Translated by