将数据表示为曲面
绘制数据网格的函数
MATLAB®图形函数定义曲面z中矩形网格上方点的坐标x-y飞机。这幅图是由相邻的点用直线连接而成的。曲面图对于太大而不能用数值形式显示的矩阵的可视化和双变量函数的图形化是有用的。
MATLAB可以创建不同形式的曲面图。网格图为线框表面,只有颜色的线连接定义点。曲面图以颜色显示连接线和曲面的面。这个表格列出了各种形式。
函数网格和插值数据
当需要重构和插值数据以便将数据表示为曲面时,这些函数非常有用。
函数 |
用于创建 |
---|---|
meshgrid |
二维和三维空间中的矩形网格 |
griddata |
插值分散数据 |
griddedInterpolant |
插值网格数据 |
scatteredInterpolant |
插值分散数据 |
网格和曲面图
的网
而且冲浪
命令创建矩阵数据的三维曲面图。如果Z
一个矩阵中有哪些元素Z (i, j)
定义表面在底层之上的高度(i, j)
网格,然后
网格(Z)
生成表面的彩色线框视图,并将其显示在3d视图中。同样的,
冲浪(Z)
生成一个彩色的、多面的表面视图,并在3d视图中显示它。通常,切面是四边形,每一个都是不变的颜色,用黑色网格线勾勒,但是阴影
命令可以消除网格线(阴影平
)或选择跨面插值的底纹(阴影插值函数
).
表面对象属性提供了对表面的视觉外观的额外控制。您可以指定边线样式、顶点标记、表面着色、光照特征等等。
两个变量函数的可视化
要显示两个变量的函数,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])轴紧视(-50,30)camlight left
看到冲浪
函数获取有关曲面图的更多信息。
非均匀采样数据的曲面图
你可以使用meshgrid
为了创建一个网格的统一采样数据点,以评估和图形化sinc
函数。MATLAB然后通过连接相邻的矩阵元素来构造曲面图,以形成四边形网格。
若要从非均匀采样数据生成曲面图,请使用scatteredInterpolant
在均匀间隔的点上插值值,然后使用网
而且冲浪
用通常的方式。
使用实例-在曲面上显示非均匀数据
这示例计算sinc
在特定范围内的随机点上函数,然后生成统一采样的数据,以曲面图的形式显示。该过程包括以下任务:
使用
linspace
在不均匀采样数据的范围内生成间隔均匀的值。使用
meshgrid
生成带有输出的绘图网格linspace
.使用
scatteredInterpolant
将不规则采样数据插值到返回的规则间隔网格中meshgrid
.使用绘图函数来显示数据。
生成范围[- 8,8]内的不均匀采样数据,并用其对函数求值:
X =兰特(100,1)*16 - 8;Y = rand(100,1)*16 - 8;R =√(x。^2 + y.^2) + eps;Z = sin(r)./r;
的
linspace
函数提供了一种方便的方法来创建具有所需元素数量的均匀间隔数据。下面的语句生成随机数据范围内的向量,其分辨率与-8生成的相同:。5:8的陈述在前面sinc
例子:Xlin = linspace(min(x),max(x),33);Ylin = linspace(min(y),max(y),33);
-
[X,Y] = meshgrid(xlin,ylin);
这个过程的关键是使用
scatteredInterpolant
根据函数在原始数据点(在本例中是随机的)上的值,在均匀间隔的点上插值函数的值。这个语句使用默认的线性插值来生成新的数据:f = scatteredinterpolation (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
你现在可以表示Z相对于X和y的值。例如,创建一个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;Theta = pi*(-n:2:n)/n;= (pi/2)*(-n:2:n)'/n;X = cos *cos;Y = cos *sin;Z = sin()*ones(size(theta));colormap([0 0 0;1 1 1]) C = hadamard(2^k);冲浪(X,Y,Z,C)轴方