Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

fmesh

绘制三维网格图

  • Plot 3-D mesh

说明

示例

fmesh(f)xy 的默认区间 [-5 5] 为表达式 z = f(x,y) 创建网格图。

示例

fmesh(f,xyinterval) 将在指定区间绘图。要对 xy 使用相同的区间,请将 xyinterval 指定为 [min max] 形式的二元素向量。要使用不同的区间,请指定 [xmin xmax ymin ymax] 形式的四元素向量。

示例

fmesh(funx,funy,funz) 在默认区间 [-5 5](对于 uv)绘制由 x = funx(u,v)y = funy(u,v)z = funz(u,v) 定义的参数化网格。

fmesh(funx,funy,funz,uvinterval) 在指定区间绘制参数化网格。要对 uv 使用相同的区间,请将 uvinterval 指定为 [min max] 形式的二元素向量。要使用不同的区间,请指定 [umin umax vmin vmax] 形式的四元素向量。

fmesh(___,LineSpec) 设置网格的线型、标记符号和颜色。例如,'-r' 指定红色线条。在前面的任何输入参数组合之后使用此选项。

示例

fmesh(___,Name,Value) 使用一个或多个名称-值对组参数指定网格的属性。可以将此选项与前面语法中的任何输入参数组合一起使用。

fmesh(ax,___) 将图形绘制到 ax 指定的坐标区中,而不是当前坐标区 gca 中。

fs = fmesh(___) 返回 FunctionSurface 对象或 ParameterizedFunctionSurface 对象,具体情况取决于输入。使用 fs 来查询和修改特定曲面的属性。有关属性列表,请参阅 FunctionSurface 属性ParameterizedFunctionSurface 属性

示例

全部折叠

在默认区间 -5<x<5-5<y<5 绘制 sin(x)+cos(y) 输入的网格。

fmesh(@(x,y) sin(x)+cos(y))

Figure contains an axes object. The axes object contains an object of type functionsurface.

绘制参数化网格图

x=rcos(s)sin(t)y=rsin(s)sin(t)z=rcos(t)wherer=2+sin(7s+5t)

对于 0<s<2π0<t<π。使用 alpha 使网格部分透明。

r = @(s,t) 2 + sin(7.*s + 5.*t);
x = @(s,t) r(s,t).*cos(s).*sin(t);
y = @(s,t) r(s,t).*sin(s).*sin(t);
z = @(s,t) r(s,t).*cos(t);
fmesh(x,y,z,[0 2*pi 0 pi])
alpha(0.8)

Figure contains an axes object. The axes object contains an object of type parameterizedfunctionsurface.

绘制分段输入

erf(x)+cos(y)-5<x<0sin(x)+cos(y)0<x<5

区间为 -5<y<5.

指定绘图区间作为 fmesh 的第二个参数。在相同坐标区的不同区间绘制多个输入时,坐标轴范围会调整以包括所有数据。

fmesh(@(x,y) erf(x)+cos(y),[-5 0 -5 5])
hold on
fmesh(@(x,y) sin(x)+cos(y),[0 5 -5 5])
hold off

Figure contains an axes object. The axes object contains 2 objects of type functionsurface.

使用红线创建网格图。

fmesh(@(x,y) sin(x)+cos(y),'EdgeColor','red')

Figure contains an axes object. The axes object contains an object of type functionsurface.

输入参数

全部折叠

要绘制的三维函数,指定为命名或匿名函数的函数句柄。

指定 z = f(x,y) 形式的函数。该函数必须接受两个矩阵输入参数,并返回大小相同的矩阵输出参数。为获得最佳性能,应使用数组运算符而不是矩阵运算符。例如,使用 .* (times) 而不是 * (mtimes)。

示例: f = @(x,y) sin(x) + cos(y);

xy 的绘图区间,指定为下列形式之一:

  • [min max] 形式的向量 - 对 xy 都使用区间 [min max]

  • [xmin xmax ymin ymax] 形式的向量 - 对 x 使用区间 [xmin xmax],对 y 使用区间 [ymin ymax]

x 坐标的参数化函数,指定为命名或匿名函数的函数句柄。

指定 x = funx(u,v) 形式的函数。该函数必须接受两个矩阵输入参数,并返回大小相同的矩阵输出参数。为获得最佳性能,应使用数组运算符而不是矩阵运算符。例如,使用 .* (times) 而不是 * (mtimes)。

示例: funx = @(u,v) u.*sin(v);

y 坐标的参数化函数,指定为命名或匿名函数的函数句柄。

指定 y = funy(u,v) 形式的函数。该函数必须接受两个矩阵输入参数,并返回大小相同的矩阵输出参数。为获得最佳性能,应使用数组运算符而不是矩阵运算符。例如,使用 .* (times) 而不是 * (mtimes)。

示例: funy = @(t) @(u,v) -u.*cos(v);

z 坐标的参数化函数,指定为命名或匿名函数的函数句柄。

指定 z = funz(u,v) 形式的函数。该函数必须接受两个矩阵输入参数,并返回大小相同的矩阵输出参数。为获得最佳性能,应使用数组运算符而不是矩阵运算符。例如,使用 .* (times) 而不是 * (mtimes)。

示例: funz = @(u,v) v;

uv 的绘图区间,指定为下列形式之一:

  • [min max] 形式的向量 - 对 uv 都使用区间 [min max]

  • [umin umax vmin vmax] 形式的向量 - 对 u 使用区间 [umin umax],对 v 使用区间 [vmin vmax]

坐标区对象。如果您不指定坐标区对象,则 fmesh 使用当前坐标区。

线型、标记和颜色,指定为包含符号的字符向量或字符串。符号可以按任意顺序显示。您不需要同时指定所有三个特征(线型、标记和颜色)。例如,如果忽略线型,只指定标记,则绘图只显示标记,不显示线条。

示例: '--or' 是带有圆形标记的红色虚线

线型描述表示的线条
'-'实线

Sample of solid line

'--'虚线

Sample of dashed line

':'点线

Sample of dotted line

'-.'点划线

Sample of dash-dotted line, with alternating dashes and dots

标记描述生成的标记
'o'圆圈

Sample of circle marker

'+'加号

Sample of plus sign marker

'*'星号

Sample of asterisk marker

'.'

Sample of point marker

'x'叉号

Sample of cross marker

'_'水平线条

Sample of horizontal line marker

'|'垂直线条

Sample of vertical line marker

's'方形

Sample of square marker

'd'菱形

Sample of diamond line marker

'^'上三角

Sample of upward-pointing triangle marker

'v'下三角

Sample of downward-pointing triangle marker

'>'右三角

Sample of right-pointing triangle marker

'<'左三角

Sample of left-pointing triangle marker

'p'五角形

Sample of pentagram marker

'h'六角形

Sample of hexagram marker

颜色名称短名称RGB 三元组外观
'red''r'[1 0 0]

Sample of the color red

'green''g'[0 1 0]

Sample of the color green

'blue''b'[0 0 1]

Sample of the color blue

'cyan' 'c'[0 1 1]

Sample of the color cyan

'magenta''m'[1 0 1]

Sample of the color magenta

'yellow''y'[1 1 0]

Sample of the color yellow

'black''k'[0 0 0]

Sample of the color black

'white''w'[1 1 1]

Sample of the color white

名称-值参数

将可选的参数对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参数名称,Value 是对应的值。名称-值参数必须出现在其他参数之后,但参数对组的顺序无关紧要。

在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。

示例: 'Marker','o','MarkerFaceColor','red'

此处所列的属性只是一部分。有关完整列表,请参阅 FunctionSurface 属性

每个方向上的计算点数,以数值形式指定。默认值为 35。由于 fmesh 对象使用自适应计算,因此实际的计算点数更大。

示例: 100

在绘图下显示等高线图,指定为 'on''off',或者指定为数值或逻辑值 1 (true) 或 0 (false)。值 'on' 等效于 true,'off' 等效于 false。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState 类型的 on/off 逻辑值。

线条颜色,指定为 'interp'、RGB 三元组、十六进制颜色代码、颜色名称或短名称。默认值 'interp' 将基于 ZData 属性值为边着色。

对于自定义颜色,请指定 RGB 三元组或十六进制颜色代码。

  • RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于 [0,1] 范围内,例如 [0.4 0.6 0.7]

  • 十六进制颜色代码是字符向量或字符串标量,以井号 (#) 开头,后跟三个或六个十六进制数字,范围可以是 0F。这些值不区分大小写。因此,颜色代码 '#FF8800''#ff8800''#F80''#f80' 是等效的。

此外,还可以按名称指定一些常见的颜色。下表列出了命名颜色选项、等效 RGB 三元组和十六进制颜色代码。

颜色名称短名称RGB 三元组十六进制颜色代码外观
'red''r'[1 0 0]'#FF0000'

Sample of the color red

'green''g'[0 1 0]'#00FF00'

Sample of the color green

'blue''b'[0 0 1]'#0000FF'

Sample of the color blue

'cyan' 'c'[0 1 1]'#00FFFF'

Sample of the color cyan

'magenta''m'[1 0 1]'#FF00FF'

Sample of the color magenta

'yellow''y'[1 1 0]'#FFFF00'

Sample of the color yellow

'black''k'[0 0 0]'#000000'

Sample of the color black

'white''w'[1 1 1]'#FFFFFF'

Sample of the color white

'none'不适用不适用不适用无颜色

以下是 MATLAB® 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。

RGB 三元组十六进制颜色代码外观
[0 0.4470 0.7410]'#0072BD'

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]'#D95319'

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]'#EDB120'

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]'#7E2F8E'

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]'#77AC30'

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]'#4DBEEE'

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]'#A2142F'

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

示例: 'blue'

示例: [0 0 1]

示例: '#0000FF'

线型,指定为下表中列出的选项之一。

线型描述表示的线条
'-'实线

Sample of solid line

'--'虚线

Sample of dashed line

':'点线

Sample of dotted line

'-.'点划线

Sample of dash-dotted line, with alternating dashes and dots

'none'无线条无线条

线宽,指定为以磅为单位的正值,其中 1 磅 = 1/72 英寸。如果该线条具有标记,则线条宽度也会影响标记边。

线宽不能小于像素的宽度。如果将线宽设置为小于系统上像素宽度的值,则线条显示为一个像素的宽度。

标记符号,指定为下表中列出的值之一。默认情况下,对象不显示标记。指定标记符号可在每个数据点或顶点添加标记。

标记描述生成的标记
'o'圆圈

Sample of circle marker

'+'加号

Sample of plus sign marker

'*'星号

Sample of asterisk marker

'.'

Sample of point marker

'x'叉号

Sample of cross marker

'_'水平线条

Sample of horizontal line marker

'|'垂直线条

Sample of vertical line marker

's'方形

Sample of square marker

'd'菱形

Sample of diamond line marker

'^'上三角

Sample of upward-pointing triangle marker

'v'下三角

Sample of downward-pointing triangle marker

'>'右三角

Sample of right-pointing triangle marker

'<'左三角

Sample of left-pointing triangle marker

'p'五角形

Sample of pentagram marker

'h'六角形

Sample of hexagram marker

'none'无标记不适用

标记轮廓颜色,指定为 'auto'、RGB 三元组、十六进制颜色代码、颜色名称或短名称。默认值 'auto' 使用与 EdgeColor 属性相同的颜色。

对于自定义颜色,请指定 RGB 三元组或十六进制颜色代码。

  • RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于 [0,1] 范围内,例如 [0.4 0.6 0.7]

  • 十六进制颜色代码是字符向量或字符串标量,以井号 (#) 开头,后跟三个或六个十六进制数字,范围可以是 0F。这些值不区分大小写。因此,颜色代码 '#FF8800''#ff8800''#F80''#f80' 是等效的。

此外,还可以按名称指定一些常见的颜色。下表列出了命名颜色选项、等效 RGB 三元组和十六进制颜色代码。

颜色名称短名称RGB 三元组十六进制颜色代码外观
'red''r'[1 0 0]'#FF0000'

Sample of the color red

'green''g'[0 1 0]'#00FF00'

Sample of the color green

'blue''b'[0 0 1]'#0000FF'

Sample of the color blue

'cyan' 'c'[0 1 1]'#00FFFF'

Sample of the color cyan

'magenta''m'[1 0 1]'#FF00FF'

Sample of the color magenta

'yellow''y'[1 1 0]'#FFFF00'

Sample of the color yellow

'black''k'[0 0 0]'#000000'

Sample of the color black

'white''w'[1 1 1]'#FFFFFF'

Sample of the color white

'none'不适用不适用不适用无颜色

以下是 MATLAB 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。

RGB 三元组十六进制颜色代码外观
[0 0.4470 0.7410]'#0072BD'

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]'#D95319'

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]'#EDB120'

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]'#7E2F8E'

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]'#77AC30'

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]'#4DBEEE'

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]'#A2142F'

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

示例: [0.5 0.5 0.5]

示例: 'blue'

示例: '#D2F9A7'

标记填充颜色,指定为 'auto'、RGB 三元组、十六进制颜色代码、颜色名称或短名称。'auto' 值使用与 MarkerEdgeColor 属性相同的颜色。

对于自定义颜色,请指定 RGB 三元组或十六进制颜色代码。

  • RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于 [0,1] 范围内,例如 [0.4 0.6 0.7]

  • 十六进制颜色代码是字符向量或字符串标量,以井号 (#) 开头,后跟三个或六个十六进制数字,范围可以是 0F。这些值不区分大小写。因此,颜色代码 '#FF8800''#ff8800''#F80''#f80' 是等效的。

此外,还可以按名称指定一些常见的颜色。下表列出了命名颜色选项、等效 RGB 三元组和十六进制颜色代码。

颜色名称短名称RGB 三元组十六进制颜色代码外观
'red''r'[1 0 0]'#FF0000'

Sample of the color red

'green''g'[0 1 0]'#00FF00'

Sample of the color green

'blue''b'[0 0 1]'#0000FF'

Sample of the color blue

'cyan' 'c'[0 1 1]'#00FFFF'

Sample of the color cyan

'magenta''m'[1 0 1]'#FF00FF'

Sample of the color magenta

'yellow''y'[1 1 0]'#FFFF00'

Sample of the color yellow

'black''k'[0 0 0]'#000000'

Sample of the color black

'white''w'[1 1 1]'#FFFFFF'

Sample of the color white

'none'不适用不适用不适用无颜色

以下是 MATLAB 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。

RGB 三元组十六进制颜色代码外观
[0 0.4470 0.7410]'#0072BD'

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]'#D95319'

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]'#EDB120'

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]'#7E2F8E'

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]'#77AC30'

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]'#4DBEEE'

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]'#A2142F'

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

示例: [0.3 0.2 0.1]

示例: 'green'

示例: '#D2F9A7'

标记大小,指定为以磅为单位的正值,其中 1 磅 = 1/72 英寸。

输出参数

全部折叠

一个或多个 FunctionSurfaceParameterizedFunctionSurface 对象,以标量或向量形式返回。

  • 如果使用 fmesh(f) 语法或此语法的变体,fmesh 将返回 FunctionSurface 对象。

  • 如果使用 fmesh(funx,funy,funz) 语法或此语法的变体,fmesh 将返回 ParameterizedFunctionSurface 对象。

您可以使用这些对象来查询和修改特定网格图的属性。有关属性列表,请参阅 FunctionSurface 属性ParameterizedFunctionSurface 属性

版本历史记录

在 R2016a 中推出