Negation of a function handle

11 visualizaciones (últimos 30 días)
Daniela Würmseer
Daniela Würmseer el 19 de Feb. de 2022
Respondida: John D'Errico el 19 de Feb. de 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

Respuesta aceptada

John D'Errico
John D'Errico el 19 de Feb. de 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.

Más respuestas (0)

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by