2016-08-03 117 views
2

我有一个二维方程,例如y = sin(x + t)。对于t的每个唯一值,我想绘制一个y的实现。例如,如果x = 0:0.1:2*pit = 1:10,对于每个值t我想绘制y = sin(x + t)x = 0:0.1:2*pi。基本上,我想为每个值t在一个方向上有线。三维图中的多个一维图

有没有一种方法可以在MATLAB中做到这一点?

回答

3

会像waterfall阴谋有利于你的情况?给定一个x坐标矢量,对于每个唯一值y(在你的情况下为t),它将绘制该曲线的一维实现。首先,你会产生坐标XYXY,各行会是一个向量的坐标x一个实现y和你在一个图形绘制所有的这些共同的2D网格。

事情是这样的:

[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

如果你不想要的“垂直”基线你的情节看,那么你就可以通过指定一些附加属性使用surf逃脱:

[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