MATLAB Answers

Not enough inpout arguments in while loop

1 ビュー (過去 30 日間)
Maria Lepouri
Maria Lepouri 2018 年 11 月 1 日
編集済み: Maria Lepouri 2018 年 11 月 1 日
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!

  0 件のコメント

サインインしてコメントする。

採用された回答

Walter Roberson
Walter Roberson 2018 年 11 月 1 日
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 件のコメント

Maria Lepouri
Maria Lepouri 2018 年 11 月 1 日
Thank you! It worked i totally forgot to change that.

サインインしてコメントする。

その他の回答 (1 件)

Elias Gule
Elias Gule 2018 年 11 月 1 日
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.

  0 件のコメント

サインインしてコメントする。

製品


リリース

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by