How to insert values into parameter and not function
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Nicolas Ochmann
am 18 Aug. 2017
Kommentiert: Nicolas Ochmann
am 18 Aug. 2017
Hi everybody,
I hope somebody can help me out: I want to create a constraint function for fmincon with an input x which comprises of six symbolic variables x1 - x6. The variable 'parameter' depends on x which is why I want to insert their values into 'parameter'. The only way I found out is to create a function as shown below:
function [c, ceq] = constraints(x)
load ('File.mat','parameter');
parameter_function = matlabFunction(parameter);
c(1) = abs(parameter_function(x)); %Constraint
ceq = [];
end
This, however, takes a lot of time to run the code and I am quite sure because of the function creation. For this reason I would like to ask if anybody knows a way to insert the x values into 'parameter' without needing to create the function.
Thanks in advance!
Nicolas
6 Kommentare
Stephen23
am 18 Aug. 2017
@Nicolas Ochmann: function handles can be passed as arguments, so there is no reason why you cannot generate that function and pass it as a parameter (see the links I gave).
Akzeptierte Antwort
Matt J
am 18 Aug. 2017
Bearbeitet: Matt J
am 18 Aug. 2017
load ('File.mat','parameter');
parameter_function = matlabFunction(parameter);
x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub, @(x) deal(parameter_function(x)^2 , [] ) )
2 Kommentare
Matt J
am 18 Aug. 2017
You could also modify your constraints() function as below and call fmincon as follows:
load ('File.mat','parameter');
parameter_function = matlabFunction(parameter);
x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub, @(x) constraints(x,parameter_function))
function [c, ceq] = constraints(x,phandle)
c=phandle(x).^2;
ceq=[];
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu MATLAB Mobile Fundamentals finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!