我有一个二维方程,例如y = sin(x + t)
。对于t
的每个唯一值,我想绘制一个y
的实现。例如,如果x = 0:0.1:2*pi
和t = 1:10
,对于每个值t
我想绘制y = sin(x + t)
为x = 0:0.1:2*pi
。基本上,我想为每个值t
在一个方向上有线。三维图中的多个一维图
有没有一种方法可以在MATLAB中做到这一点?
我有一个二维方程,例如y = sin(x + t)
。对于t
的每个唯一值,我想绘制一个y
的实现。例如,如果x = 0:0.1:2*pi
和t = 1:10
,对于每个值t
我想绘制y = sin(x + t)
为x = 0:0.1:2*pi
。基本上,我想为每个值t
在一个方向上有线。三维图中的多个一维图
有没有一种方法可以在MATLAB中做到这一点?
会像waterfall
阴谋有利于你的情况?给定一个x
坐标矢量,对于每个唯一值y
(在你的情况下为t
),它将绘制该曲线的一维实现。首先,你会产生坐标X
,Y
凡X
和Y
,各行会是一个向量的坐标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
我们得到这个情节:
如果你不想要的“垂直”基线你的情节看,那么你就可以通过指定一些附加属性使用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');
FaceColor
和EdgeColor
属性可以模拟您在waterfall
图中看到的内容。每个可视化都有一个白色面,并且幅度色被插值。重要的是MeshStyle
属性,您要在其中明智地显示绘图的边缘。 mesh
的默认方式是同时显示行和列,因此您可以将图形以图案的形式显示,这不是您想要的。将MeshStyle
设置为row
将模拟waterfall
图,但没有您在该图中看到的垂直基线。
您将获得:
感谢您的答复。我不想要瀑布部分的垂直线。你知道怎么做吗? –
@PaulStein检查我的编辑。 – rayryeng