Problem on code while plotting a graph

I am plotting a graph, with the line:
figure;
hold on ;
.....
title('function');
.....
hold off;
But I ended up with an error of "Index exceeds array bounds." on the title line. How can I solve this?

4 个评论

This is my code:
figure;
hold on;
fplot(y,[xmin xmax]);
ylim([ymin ymax]);
title('function');
xlabel('x');
ylabel('f(x)');
hold off;
The error message is:
Index exceeds array bounds.
Error in lagrangianinterpolation2 (line 113)
title('function');
figure;
hold on ;
title('function');
hold off;
Works fine on my machine with 2017b, what Matlab version are you using?
Paolo
Paolo 2018-6-19
编辑:Paolo 2018-6-19
Star Strider is right, the error is probably not related to the title command.

请先登录,再进行评论。

 采纳的回答

Star Strider
Star Strider 2018-6-19
编辑:Star Strider 2018-6-19
The actual error is most likely in the line just above your title call.
Check it to be certain it is entered correctly.
EDIT (16:10 UCT)
What is your ‘y’ function?
Note that in your code, and using fplot, ‘y’ must be a function of one variable.

4 个评论

I defined y as:
y=@(x)(p1*x+p0);
Written on the line just before the line 'figure;'
The codes are:
t1=A(2,1)/(A(1,1)-A(1,2));
t2=A(2,2)/(A(1,2)-A(1,1));
p1=t1+t2;
p0=-t1*A(1,2)-t2*A(1,1);
if p1==inf || p1==-inf || isnan(p1)==1
uiwait(msgbox('Error. Rerun the program.','Error!','error'));
p1=0;
p0=0;
yf1=0;
yf2=0;
yf3=0;
return;
end
if abs(p1)<10^-10
p1=0;
end
if abs(p0)<10^-10
p0=0;
end
fprintf(1,'The equation is f(x) = %g x + %g . \n',p1,p0);
disp(' ');
xmin=min(A(1,:))-1;
xmax=max(A(1,:))+1;
ymin=min(A(2,:))-2;
ymax=max(A(2,:))+2;
y=@(x)(p1*x+p0);
figure;
.....
Where A is a 2 by 2 matrix full of numbers.
Thanks guys, I know where I made the mistake.
As always, my (our) pleasure.

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 2-D and 3-D Plots 的更多信息

产品

版本

R2018a

标签

Community Treasure Hunt

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

Start Hunting!

Translated by