MATLAB®图形通过z中矩形网格上方点的坐标x-y飞机。这张图是用直线把相邻的点连接起来的。曲面图对于可视化大到无法用数字形式显示的矩阵和绘制两个变量的函数非常有用。
MATLAB可以创建不同形式的曲面图。网情节线框表面,只有颜色的线连接的定义点。曲面图以颜色显示连接线和曲面的面。这张表列出了各种形式。
当您需要重构和插入数据以便可以将数据表示为曲面时,这些函数非常有用。
函数 |
用于创建 |
---|---|
meshgrid |
二维和三维空间中的矩形网格 |
griddata |
插入数据分散 |
griddedInterpolant |
插值网格数据 |
scatteredInterpolant |
插入数据分散 |
的网
和冲浪
命令创建矩阵数据的三维曲面图。如果Z
是哪个矩阵的元素Z (i, j)
定义一个表面在一个底层上的高度(i, j)
网格,然后
网格(Z)
生成表面的彩色线框视图,并以3d视图显示它。同样的,
冲浪(Z)
生成表面的彩色多面视图,并以3d视图显示。通常情况下,平面是四边形的,每个都是固定的颜色,用黑色网格线勾勒出来,但是阴影
命令可以消除网格线(阴影平
)或选择在facet上插值阴影(阴影插值函数
).
表面对象属性提供了对表面视觉外观的额外控制。您可以指定边线样式、顶点标记、面着色、照明特征等。
要显示一个二元函数,z=f(x, y
),生成X
和Y
在函数的定义域上,分别由重复的行和列组成的矩阵。您将使用这些矩阵来计算和绘制函数。
的meshgrid
函数变换两个向量指定的定义域,x
和y
到矩阵X
和Y
.然后用这些矩阵求两个变量的函数值X
是向量的副本吗x
和列Y
是向量的副本吗y
.
默认情况下,MATLAB移除网格图中隐藏的线,即使图的面没有被填充。您可以禁用隐藏线删除,并允许网格图的面是透明的隐藏的
命令:
隐藏的从
MATLAB提供了许多可以增强图形信息内容的技术。例如,这幅图sinc
函数使用与前面图形相同的数据,但使用照明、视图调整和不同的颜色图来强调图形函数的形状(daspect
,轴
,视图
,camlight
).
figure colormap hsv surf(X,Y,Z,'FaceColor','interp',…‘EdgeColor’,‘没有’,……'FaceLighting','gouraud') daspect([5 5 1]) axis tight view(-50,30) camlight left
看到冲浪
函数以获得更多关于曲面图的信息。
您可以使用meshgrid
建立一个均匀抽样的数据点的网格,在那里评估和绘制sinc
函数。然后MATLAB通过连接相邻的矩阵元素来构造曲面图,形成四边形网格。
若要从非均匀采样数据生成曲面图,请使用scatteredInterpolant
在均匀间隔点上插值值,然后使用网
和冲浪
以通常的方式。
这例评估sinc
函数在特定范围内的随机点,然后生成均匀采样的数据,以显示为曲面图。这个过程包括以下任务:
使用linspace
在不均匀采样的数据范围内生成均匀间隔的值。
使用meshgrid
生成输出为的绘图网格linspace
.
使用scatteredInterpolant
将不规则采样的数据插值到规则间隔的网格中meshgrid
.
使用绘图功能来显示数据。
在[- 8,8]范围内生成不均匀采样的数据,并用它来计算函数:
X = rand(100,1)*16 - 8;Y = rand(100,1)*16 - 8;r =√x。^2 + y ^2) + eps;z =罪(r)。/ r;
的linspace
函数提供了一种方便的方法来创建具有所需元素数量的均匀间隔数据。下列语句生成的向量在随机数据的范围内,其分辨率与由-8生成的分辨率相同。前面的5:8陈述sinc
例子:
xlin = linspace (min (x)马克斯(x), 33);ylin = linspace (min (y), max (y), 33);
(X, Y) = meshgrid (xlin ylin);
这个过程的关键是使用scatteredInterpolant
根据函数在原始数据点上的值(在本例中是随机的),在均匀间隔点上插值函数的值。该语句使用默认的线性插值来生成新数据:
f = scatteredInterpolant (x, y, z);Z = f (X, Y);
绘制插值和非均匀数据,以产生:
图网(X, Y, Z)%以内插值替换的轴紧;持有在plot3 (x, y, z,“。”,“MarkerSize”15)%不均匀
假设你有一个数据集合,包含以下(X, Y, Z)三个一组:
X | Y | Z |
---|---|---|
1 | 1 | 152 |
2 | 1 | 89 |
3. | 1 | One hundred. |
4 | 1 | One hundred. |
5 | 1 | One hundred. |
1 | 2 | 103 |
2 | 2 | 0 |
3. | 2 | One hundred. |
4 | 2 | One hundred. |
5 | 2 | One hundred. |
1 | 3. | 89 |
2 | 3. | 13 |
3. | 3. | One hundred. |
4 | 3. | One hundred. |
5 | 3. | One hundred. |
1 | 4 | 115 |
2 | 4 | One hundred. |
3. | 4 | 187 |
4 | 4 | 200 |
5 | 4 | 111 |
1 | 5 | One hundred. |
2 | 5 | 85 |
3. | 5 | 111 |
4 | 5 | 97 |
5 | 5 | 48 |
您可以使用各种MATLAB图形类型来表示向量形式的数据,例如冲浪
,轮廓
,stem3
,首先重构数据。使用(X, Y)值来定义X - Y平面上有Z值的坐标。的重塑
和转置
函数可以重组您的数据,使(X, Y, Z)三联体形成一个矩形网格:
x =重塑(x 5 5) ';y =重塑(y, 5、5)';z =重塑(z, 5、5)';
整形结果为三个5 × 5数组:
x = 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 y = 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 z = 152 89 100 100 100 103 0 100 100 100 89 100 100 100 115 100 187 200 111 100 85 111 97 48
现在可以用X和y表示Z的值。例如,创建一个3-D的干图:
stem3 (x, y, z,“MarkerFaceColor”,‘g’)
绘制曲面的函数可以使用两个额外的向量或矩阵参数来描述特定的曲面x和y数据。如果Z
是一个米——- - - - - -n矩阵,x
是一个n向量,y
是一个米向量,然后
网格(x, y, Z, C)
描述一个具有颜色顶点的网格表面C (i, j)
并且位于这些点上
(x (j), y (i)、Z (i, j))
在哪里x
对应的列Z
和y
它的行。
更一般的,如果X
,Y
,Z
,C
那么,矩阵的维数是相同的吗
网格(X, Y, Z, C)
描述一个具有颜色顶点的网格表面C (i, j)
并且位于这些点上
(X (i, j), Y (i, j)、Z (i, j))
这示例使用球坐标来绘制一个球体,并用a中的加号和减号的图案给它上色阿达玛矩阵,信号处理编码理论中使用的正交矩阵。向量θ
和φ
都在范围内-
π≤θ
≤π,-
π/2
≤φ
≤π/2
.因为θ
是行向量吗φ
是列向量吗,矩阵的乘法X
,Y
,Z
是向量的外积。s manbetx 845
图k = 5;n = 2 ^ k - 1;θ=π* (- n: 2: n) / n;φ=(π/ 2)* (- n: 2: n) / n;X = cos(φ)* cos(θ);Y = cos(φ)* sin(θ);Z =罪(φ)*的(大小(θ));C = hadamard(2^k);冲浪(X, Y, Z, C)轴广场