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

조회 수: 20 (최근 30일)
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
dpb
dpb 2019년 11월 9일
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

댓글을 달려면 로그인하십시오.

채택된 답변

David Goodmanson
David Goodmanson 2019년 11월 9일
편집: David Goodmanson 2019년 11월 10일
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
Walter Roberson
Walter Roberson 2019년 11월 9일
Note that returning two variables is not the same as returning a row vector of two values.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

Community Treasure Hunt

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

Start Hunting!

Translated by