Error using gmres. Too many output arguments.

조회 수: 5 (최근 30일)
Hmm!
Hmm! 2021년 11월 25일
답변: Hmm! 2021년 11월 26일
I am pretty sure about this code that it is working I copied it from a textbook. But when I run it I get the error
"Error using gmres. Too many output arguments." I did all I could but I couldn't able to fix the problem, I think the reason being that I am not strong in matlab coding. Help needed.
clear
m=200;A=2*eye(m)+0.5*randn(m)/sqrt(m);b=ones(m,1);
[x,flag,relres,iter,resvec]=gmres(A,b);
figure(1)
plot(eig(A),'o');
hold on;
x=(1.5:0.001:2.5);
plot(x,sqrt(0.25-(x-2).^2),'r',x,-sqrt(0.25-(x-2).^2),'r');
legend('eigenvalues of A','(x-2)^2+y^2=1/4')
figure(2)
n=1:length(resvec);
semilogy(n,resvec);
hold on;
semilogy(n,4.^(-n),'r');
legend('||r^n||/||b||','4^{-n}');
hold off

채택된 답변

Hmm!
Hmm! 2021년 11월 26일
Yes. The resolution is that I had another file in the path folder with gmres so removing that file to a different folder did the magic. Thanks ot @Christine Tobler for the insight.

추가 답변 (1개)

Yongjian Feng
Yongjian Feng 2021년 11월 25일
It is working, at least for 2021a. Which version are you using please?
When matlab outputs an error, it normally tells you which line as well. Does it say line 3?
  댓글 수: 2
Hmm!
Hmm! 2021년 11월 25일
I am using MATLAB Version: 9.7.0.1261785 (R2019b) Update 3. It didn't tell me the line but when I run the code line by line, the error begins at
[x,flag,relres,iter,resvec]=gmres(A,b);
Christine Tobler
Christine Tobler 2021년 11월 25일
Perhaps you have another file called gmres.m on the path, which overrides the standard one?
Try
which -all gmres
this should list any additional gmres.m that MATLAB might try to call here.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

제품


릴리스

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by