Not enough inpout arguments in while loop

2 visualizaciones (últimos 30 días)
Maria Lepouri
Maria Lepouri el 1 de Nov. de 2018
Editada: Maria Lepouri el 1 de Nov. de 2018
Hello, I have a code that i need to use for SQP optimization with the Newton step method. When I run it, it keeps telling me not enough inpout arguments in while loop.
function [x,grad,hessian,xk,lamda] = myNewton(f,g,H,h,dh,x0,tol,maxiter)
if nargin<6, maxiter=100; end
if nargin<5, tol=1e-10; end
k=0; x=x0(1:2,1); xk=x0(1:2,1);lamda=x0(3,1);
fprintf('Iter f(x)\n')
while (norm(feval(g,x))>tol && k<maxiter )
Why does it keep telling me that i don't have enough inpout arguments? Thank you!

Respuesta aceptada

Walter Roberson
Walter Roberson el 1 de Nov. de 2018
if nargin<6, maxiter=100; end
if nargin<5, tol=1e-10; end
You have 8 possible arguments to that function, so the 6 should be 8 and the 5 should be 7.
  1 comentario
Maria Lepouri
Maria Lepouri el 1 de Nov. de 2018
Thank you! It worked i totally forgot to change that.

Iniciar sesión para comentar.

Más respuestas (1)

Elias Gule
Elias Gule el 1 de Nov. de 2018
fprintf('%4u %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f\n',k,fn,x,lamda,norm(grad))
looks suspicious. fprintf appears to be expecting 7 inputs while only 5 are being supplied.

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Productos


Versión

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by