给定2d数据的3d图

时间:2011-05-06 10:21:00

标签: matlab

我想了解2d数据如何与z轴相关以获得3d图

让我们说我有x=[-1:0.1:1],载体

y=[1 2 3 4 5 4 3 2 1 0]

y Vs x的曲线将具有5的峰值并且在x = 0.5时向下倾斜到两侧 如何将这些数据与3d相关联以获得钟形表面,具有相似的特征。

1 个答案:

答案 0 :(得分:3)

您可以将线/曲线图视为单个变量y=f(x)的函数,通常,xy都是矢量。例如,您可以将高斯钟形曲线绘制为

x=linspace(-3,3,1000);
y=exp(-x.^2/2);
plot(x,y)

另一方面,表面图是两个变量z=f(x,y)的函数,其中xy可以是向量或矩阵,z是矩阵。 meshgrid是一个非常方便的函数,通过适当的复制从1D向量生成2D xy数组。

您将z矩阵绘制为2D图像(z的值由颜色表示)或3D图(z的值表示为高度z轴)。例如,可以将3D高斯钟形曲线绘制为

x=linspace(-3,3,1000);y=x';               %'
[X,Y]=meshgrid(x,y);
z=exp(-(X.^2+Y.^2)/2);
surf(x,y,z);shading interp

这是各个图表的样子

enter image description here