2016-08-03 22 views
2

私は2D式を持っています。例えば、y = sin(x + t)です。一意の値がtの場合は、yの1D実現をプロットしたいと思います。たとえば、x = 0:0.1:2*pit = 1:10の場合、tの各値に対してx = 0:0.1:2*piの場合はy = sin(x + t)をプロットしたいと思います。基本的には、私はtの各値に対して一方向に沿って線を持っていきたいと思います。3Dプロット内の複数の1Dプロット

私はこれをMATLABで行う方法はありますか?

答えて

3

waterfallのようなものがあなたの場合に有益でしょうか? xのベクトルが与えられた場合、それぞれの固有値がy(あなたのケースではt)の場合、それはその曲線の1次元実現をプロットします。まず、XYの2次元グリッドを生成します。ここで、XYの各行は、yの実現のためにxの座標のベクトルになり、これらすべてを1つのプロットにプロットします。このような

何か:

[t,x] = meshgrid(0:0.1:2*pi, 1:10); 
waterfall(t, x, sin(x + t)); 
view(-50, 50); % Adjust for a better view 
xlabel('x'); ylabel('t'); zlabel('y'); % Add axis labels 

私たちは、このプロットを得る:

enter image description here

あなたがプロットに見る「垂直」のベースラインを希望しない場合は、することができます

[t,x] = meshgrid(0:0.1:2*pi, 1:10); 
surf(t, x, sin(x + t), 'FaceColor', 'white', 'EdgeColor', 'interp', 'MeshStyle', 'row'); 
view(-50, 50); 
xlabel('x'); ylabel('t'); zlabel('y'); 
を入力してを使用してください。

FaceColorEdgeColorの属性は、waterfallプロットに表示されている内容を模倣するためのものです。各視覚化は白色の面を有し、振幅色が補間される。重要なのは、プロット行の端を賢明に表示したいMeshStyle属性です。 meshのデフォルトの方法は、行と列の両方を表示することです。したがって、あなたはあなたが望むものではないグリッドのようなパターンであなたのプロットを視覚化します。 MeshStyleからrowに設定すると、waterfallプロットはシミュレートされますが、そのプロットに表示される垂直ベースラインはありません。

あなたが買ってあげる:返信用

enter image description here

+0

感謝を。私は滝の部分の縦線を望んでいません。あなたはそれをする方法を知っていますか? –

+0

@PaulStein自分の編集を確認してください。 – rayryeng