Not enough input arguments error/making a function using @ error.
4 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Star Strider
2016-3-31
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.
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!