필터 지우기
필터 지우기

How to insert values into parameter and not function

조회 수: 3 (최근 30일)
Nicolas Ochmann
Nicolas Ochmann 2017년 8월 18일
댓글: Nicolas Ochmann 2017년 8월 18일
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
Stephen23
Stephen23 2017년 8월 18일
@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).
Nicolas Ochmann
Nicolas Ochmann 2017년 8월 18일
Perfect, thank you very much!!

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

채택된 답변

Matt J
Matt J 2017년 8월 18일
편집: Matt J 2017년 8월 18일
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
Matt J
Matt J 2017년 8월 18일
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=[];
Nicolas Ochmann
Nicolas Ochmann 2017년 8월 18일
Thank you!!!!

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Solver Outputs and Iterative Display에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by