本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

surface

创建曲面对象

语法

surface(Z)
surface(Z,C)
surface(X,Y,Z)
surface(X,Y,Z,C)
surface(x,y,Z)
surface(...'PropertyName',PropertyValue,...)
surface(ax,...)
h = surface(...)

属性

有关属性列表,请参阅 Surface 属性

说明

surface 是一个创建曲面图形对象的低级函数。曲面是将每个元素的行和列索引用作 xy 坐标、将每个元素的值用作 z 坐标而创建的矩阵数据图。

surface(Z) 绘制由矩阵 Z 指定的曲面。此处,Z 是在几何矩形网格上定义的单值函数。Z 的值可以是数值、日期时间、持续时间或分类值。

surface(Z,C) 绘制由 Z 指定的曲面并根据 C 中的数据对该曲面着色(请参阅“示例”)。

surface(X,Y,Z) 使用 C = Z,因此颜色与 x-y 平面之上的曲面高度成比例。

surface(X,Y,Z,C) 绘制由 XYZ 指定的参数曲面,并使用由 C 指定的颜色进行着色。XYZ 的值可以是数值、日期时间、持续时间或分类值。

surface(x,y,Z)surface(x,y,Z,C) 将前两个矩阵参数替换为向量,且必须具有 length(x) = nlength(y) = m,其中 [m,n] = size(Z)。在这种情况下,曲面的各个面的顶点是三元素向量 (x(j),y(i),Z(i,j))。请注意,x 对应于 Z 的列,y 对应于 Z 的行。有关参数曲面的完整讨论,请参阅 surf 函数。xyZ 的值可以是数值、日期时间、持续时间或分类值。

surface(...'PropertyName',PropertyValue,...) XYZC 参数后接属性名称/属性值对组来指定其他曲面属性。有关上述属性的说明,请参阅 Surface 属性

surface(ax,...) 将在由 ax 指定的坐标区中,而不是在当前坐标区 (gca) 中创建曲面。选项 ax 可以位于前面的语法中的任何输入参数组合之前。

h = surface(...) 将返回一个基本曲面对象。

示例

全部折叠

在域 -2x2-2y2 上绘制函数 z=xe-x2-y2。使用 meshgrid 定义 XY。然后,定义 Z 并创建一个曲面图。使用 view 更改该绘图的视图。

[X,Y] = meshgrid(-2:0.2:2,-2:0.2:2);
Z = X.*exp(-X.^2 - Y.^2);
figure
surface(X,Y,Z)
view(3)

surface 基于 XYZ 中的相应值创建曲面图。如果未定义颜色数据 C,则 surface 使用 Z 确定颜色,因此颜色与曲面高度成比例。

使用 peaks 函数将 XDYDZD 定义为 25×25 矩阵。

[XD,YD,ZD] = peaks(25);

加载 clown 数据集以获取图像数据 X 及其关联的颜色图 map。使用 flipud 函数翻转 X,并将已翻转的图像定义为曲面 C 的颜色数据。

load clown
C = flipud(X);

创建一个曲面图并沿该曲面图显示图像。由于曲面数据 ZD 和颜色数据 C 具有不同的维度,因此您必须将曲面 FaceColor 设置为 'texturemap'

figure
surface(XD,YD,ZD,C,...
    'FaceColor','texturemap',...
    'EdgeColor','none',...
    'CDataMapping','direct')
colormap(map)
view(-35,45)

clown 数据通常使用 image 函数(使用 'ij' 对轴进行编号)进行查看。此示例使用 flipud 沿垂直方向翻转图像数据。

教程

有关示例,请参阅将数据表示为曲面

提示

surface 不遵循图窗和坐标区的 NextPlot 属性的设置。它仅在当前坐标区上添加曲面对象。

如果您未指定单独的颜色数据 (C),MATLAB® 将使用矩阵 (Z) 确定曲面的颜色。在这种情况下,颜色与 Z 的值成比例。您可以指定单独的矩阵来对曲面着色,这与定义曲面区域的数据无关。

您可以按属性名称/属性值对组的形式或使用圆点表示法来指定属性。

surface 提供了可使您省略 XDataYDataZDataCData 属性的名称的简便形式。例如,

surface('XData',X,'YData',Y,'ZData',Z,'CData',C)

等效于

surface(X,Y,Z,C)

当仅指定一个矩阵输入参数时,

surface(Z)

MATLAB 将分配相应的数据属性,如同您指定了

surface('XData',[1:size(Z,2)],...
   'YData',[1:size(Z,1)],...
   'ZData',Z,...
   'CData',Z)

axiscaxiscolormapholdshadingview 命令设置影响曲面的图形属性。您也可以在创建曲面之后使用圆点表示法来设置和查询曲面的属性值。

在 R2006a 之前推出