在Matlab中,相同的数据产生不同的图

在Matlab中,相同的数据产生不同的图,matlab,matrix,plot,Matlab,Matrix,Plot,基本上,当我把矩阵叠加在一起,把它们画成一个图时,Matlab出于某种原因添加了一条线 因为绘图用线性插值线连接所有点。由于sinh(y(end))不等于sinh(y(1))并且这两个点在y2=[y,y]中是相邻的,当你绘制y2时,MATLAB将在这两个点之间线性插值,从而得到直线 如果不需要直线,但希望将其绘制为单个系列,请尝试在需要间隙的位置添加NaN,即 s=linspace(-3,3); x=cosh(s); y=sinh(s); plot(x,y) hold on plot(-x,

基本上,当我把矩阵叠加在一起,把它们画成一个图时,Matlab出于某种原因添加了一条线

因为
绘图
用线性插值线连接所有点。由于
sinh(y(end))
不等于
sinh(y(1))
并且这两个点在
y2=[y,y]
中是相邻的,当你绘制
y2
时,MATLAB将在这两个点之间线性插值,从而得到直线

如果不需要直线,但希望将其绘制为单个系列,请尝试在需要间隙的位置添加
NaN
,即

s=linspace(-3,3);

x=cosh(s);
y=sinh(s);

plot(x,y)
hold on
plot(-x,y)
%until here good plots
close all
x=[x,-x];
y=[y,y];
plot(x,y)
%above plot adds a line

这条线就是用来连接图形的两个部分的,就像你要求MATLAB那样。如果您不想要它,我建议您分别绘制这两部分:
x=[x',-x']
y=[y',y.]
plot(x,y)
@billbokey你应该加上这个作为回答哦,我就你已经回答的问题发布答案的那一天还没有到来@Dan^^
x2 = [x, NaN, -x];
y2 = [y, NaN, y];
plot(x2,y2)