Not enough input arguments error/making a function using @ error.
4 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
K_Kharis
il 31 Mar 2016
Commentato: Star Strider
il 13 Apr 2016
Hi, I'm trying to do an optimization in matlab for the first time. However, I still don't get how to declare the function using @. I'm trying to do a barrier function method. I've made a function files ObjFun.m and Constr.m and now I'm declaring the barrier function as:
X = [6 6];
penalty_r = 0.5;
f = @ (x) ObjFun - penalty_r .* log(Constr);
and trying to solve:
sol = fminunc(f,X)
and after that proceeds with the rest of the algorithm.
My question is, I always have problems with the declaring function f that consists of other functions like ObjFun and Constr. Such as: not enough input arguments.
How should I declare this?
Please help.
I'm using Matlab R2015b
0 Commenti
Risposta accettata
Star Strider
il 31 Mar 2016
You didn’t post ‘ObjFun’, but assuming it is also a function of ‘x’, you need to call it as a function in your anonymous function:
f = @ (x) ObjFun(x) - penalty_r .* log(Constr);
I assume ‘Constr’ is a constant scalar that you’ve already defined in your workspace.
Più risposte (0)
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!