Negation of a function handle

4 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)

Categorías

Más información sobre Structures en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by