Negation of a function handle

11 Ansichten (letzte 30 Tage)
Daniela Würmseer
Daniela Würmseer am 19 Feb. 2022
Beantwortet: John D'Errico am 19 Feb. 2022
Hello,
i have an Optimizationproblem where i want to negate my functions (which are nonlinear) if it is a max Problem.
minusf2 = @(x) -f2;
This is working but at one point of my programm i want to do the following:
c1 =@(x) f2(x) - d(2)*x(size(A,2)+1) - z(2);
and then i get this message:
Unary operator '-' is not supported for operand of type 'function_handle'
(My code is perfectly working for min Problems, but i wanted to try to apply it even for max Problems by negating functions but then my calculations are not working. Does someone knows a trick here? Thanks

Akzeptierte Antwort

John D'Errico
John D'Errico am 19 Feb. 2022
minusf2 = @(x) -f2;
"This is working"
No. In fact, that does NOT work. That will simply not work. If f2 is a function handle, and you want to negate it, then you do this:
minusf2 = @(x) -f2(x);
So you evaluate f2, and then negate the result of f2.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by