MATLAB: Fmincon – Not Enough Input Arguments

fminconfunction

Hello,
I am trying to run an optimization with fmincon, with the function defined independently.
x0 = [-1,2];
A = [1,2];
b = 1;
x = fmincon(z1_test,x0,A,b)
function f2 = z1_test(x)
100*(x(2)-x(1)^2)^2 + (1-x(1))^2
end
For whatever reason, I keep on getting the same error message.
Capture.PNG
But if I were to define the function thusly, I know it works
x0 = [-1,2];
A = [1,2];
b = 1;
z1_test = @(x)100*(x(2)-x(1)^2)^2 + (1-x(1))^2;
x = fmincon(z1_test,x0,A,b)
It is driving me crazy.

Best Answer

x0 = [-1,2];
A = [1,2];
b = 1;
x = fmincon(@z1_test,x0,A,b)
% ^------ missed it
function f2 = z1_test(x)
f2 = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;
%^^--------- forgot to assign output
end