How can I re-write an anonymous function into a standard function?

3 visualizaciones (últimos 30 días)
I'm new to matlab. I would like to rewrite the following anonymous function into a standard function but I got struggled with the syntax.
Original function:
objc = @(w) [-mu'*w' w*C*w'];
My adjustment:
function [returns,variance] = MultiObjective(mu,C)
returns = -1*mu'*w';
variance = w*C*w';
end
  1 comentario
dpb
dpb el 9 de Nov. de 2019
The anonymous function has only w as the parameter; mu, C are embedded into the function definition with the values they contain at the time the function is defined.
Your function, would also have to pass w

Iniciar sesión para comentar.

Respuesta aceptada

David Goodmanson
David Goodmanson el 9 de Nov. de 2019
Editada: David Goodmanson el 10 de Nov. de 2019
Hi Jesus,
[ CORRECTED to include a minus sign ]
function [returns,variance] = MultiObjective(mu,C,w)
returns = -mu'*w';
variance = w*C*w';
end
Since it is a normal (non-anonymous) function, all variables are passed in on input, in whatever order you choose. (Of course you could define hardwired constants inside the function as well). Also, no need to multiply by -1.
  1 comentario
Walter Roberson
Walter Roberson el 9 de Nov. de 2019
Note that returning two variables is not the same as returning a row vector of two values.

Iniciar sesión para comentar.

Más respuestas (0)

Community Treasure Hunt

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

Start Hunting!

Translated by