今天,给大家带来Matlab中使用fmesh函数绘制三维函数或者三维参数的网格图的教程。前文中,我们讲述了很多网格图的绘制、以及曲面图的绘制。本文将讲述最后一篇关于网格图的fmesh函数的使用方法,主要讲述fmesh函数的常见用法、语法说明、表达式的三维网格图、参数化网格图、指定网格图区间并绘制分段输入、指定网格图属性等用法。
下面,我们首先给出Matlab中关于fmesh函数的帮助文档如下:
>> help fmesh fmesh Plot 3-D mesh fmesh(FUN) creates a mesh plot of FUN(X,Y). FUN is plotted over the axes range, with a default interval -5 < X < 5 and -5 < Y < 5. fmesh(FUN,INTERVAL) plots FUN over the specified INTERVAL instead of the default interval. INTERVAL can be the vector [XMIN XMAX YMIN YMAX] or the vector [A B] (to plot over A < X < B and A < Y < B). fmesh(FUNX,FUNY,FUNZ) plots the parametric surface FUNX(U,V), FUNY(U,V), and FUNZ(U,V) over the interval -5 < U < 5 and -5 < V < 5. fmesh(FUNX,FUNY,FUNZ,[UMIN UMAX VMIN VMAX]) or fmesh(FUNX,FUNY,FUNZ,[A B]) uses the specified interval. fmesh(AX,...) plots into the axes AX instead of the current axes. H = fmesh(...) returns a handle to the plotted object in H. Examples: fmesh(@(x,y) x.*exp(-x.^2-y.^2)) fmesh(@(x,y) sinc(x.^2+y.^2),[-2,2]) fmesh(@peaks) If your function has additional parameters, for example k in myfun: %-----------------------% function z = myfun(x,y,k) z = - x.^k - y.^k; %-----------------------% then you may use an anonymous function to specify that parameter: fmesh(@(x,y)myfun(x,y,2))
常见用法
fmesh(f) fmesh(f,xyinterval) fmesh(funx,funy,funz) fmesh(funx,funy,funz,uvinterval) fmesh(___,LineSpec) fmesh(___,Name,Value) fmesh(ax,___) fs = fmesh(___)
用法说明
fmesh(f) 在 x 和 y 的默认区间 [-5 5] 为表达式 z = f(x,y) 创建网格图。
fmesh(f,xyinterval) 将在指定区间绘图。要对 x 和 y 使用相同的区间,请将 xyinterval 指定为 [min max] 形式的二元素向量。要使用不同的区间,请指定 [xmin xmax ymin ymax] 形式的四元素向量。
fmesh(funx,funy,funz) 在默认区间 [-5 5](对于 u 和 v)绘制由 x = funx(u,v)、y = funy(u,v)、z = funz(u,v) 定义的参数化网格。
fmesh(funx,funy,funz,uvinterval) 在指定区间绘制参数化网格。要对 u 和 v 使用相同的区间,请将 uvinterval 指定为 [min max] 形式的二元素向量。要使用不同的区间,请指定 [umin umax vmin vmax] 形式的四元素向量。
fmesh(_,LineSpec) 设置网格的线型、标记符号和颜色。例如,’-r’ 指定红色线条。在前面的任何输入参数组合之后使用此选项。
fmesh(_,Name,Value) 使用一个或多个名称-值对组参数指定网格的属性。可以将此选项与前面语法中的任何输入参数组合一起使用。
fmesh(ax,_) 将图形绘制到 ax 指定的坐标区中,而不是当前坐标区 gca 中。
fs = fmesh(_) 返回 FunctionSurface 对象或 ParameterizedFunctionSurface 对象,具体情况取决于输入。使用 fs 来查询和修改特定曲面的属性。
表达式的三维网格图
在默认区间 −5<x<5 和 −5<y<5 绘制 sin(x)+cos(y) 输入的网格。
fmesh(@(x,y) sin(x)+cos(y))
参数化网格图
绘制参数化网格图
- 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)
指定网格图区间并绘制分段输入
绘制分段输入
- erf(x)+cos(y) −5<x<0
- sin(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
指定网格图属性
使用红线创建网格图。
fmesh(@(x,y) sin(x)+cos(y),'EdgeColor','red')
转载文章,原文出处:MathWorks官网,由古哥整理发布
如若转载,请注明出处:https://iymark.com/articles/1873.html