2016-04-22 8 views
2
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 

基本的に、行列を積み重ねて1つにプロットすると、何らかの理由でMatlabが行を追加します。Matlab、同じデータでは異なるプロットが得られる

+1

すなわちギャップはラインがあなたの2つの部分を接続するだけでありたいNaNを追加しようとした場合MATLABに頼んだように、グラフに戻ります。あなたが望んでいなければ、別々に2つの部分をプロットすることをお勧めします: 'x = [x。 '、-x。'];' 'y = [y。 '、y。']; ' 'plot(x、y)' – BillBokeey

+0

@BillBokeeyあなたはそれを回答として追加する必要があります。 – Dan

+0

ああ、既に答えた質問に対する回答を投稿する日はまだ来ていません@ダン^^ – BillBokeey

答えて

1

plotは、すべての点を直線補間した線で結ぶためです。 sinh(y(end))sinh(y(1))と等しくないので、y2 = [y,y]でこれら2つの点が隣り合っているので、y2をプロットすると、MATLABはその2つの点の間、つまり直線を線形補間します。

次の行をしたくないが、あなたは、単一シリーズとしてこれをプロットしたい、あなたは

x2 = [x, NaN, -x]; 
y2 = [y, NaN, y]; 
plot(x2,y2) 
+0

良い1人、cheerios – MSE