随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)
一个好用的用来绘制3D有色表面图的函数
语法
ezsurf(f)
ezsurf(f,domain)
ezsurf(x,y,z)
ezsurf(x,y,z,[smin,smax,tmin,tmax]) or ezsurf(x,y,z,[min,max])
ezsurf(...,n)
ezsurf(...,'circ')
ezsurf(axes_handle,...)
h = ezsurf(...)
描述
1、ezsurf(f):创建一个f(x,y)的表面图,f是一个代表两个变量的数学函数的字符串,如x和y。ezsurf调用的是surf的功能。绘制的默认区域是
matlab根据变量出现的数量选择网格,如果函数对网格上的某些点没定义,那么这些点将不会被绘制。
f可以是一个M文件函数句柄,也可以是隐式函数或者字符串形式
2、ezsurf(f,domain):在指定的区间绘制函数f,区间是[xmin, xmax, ymin, ymax] 或者 [min, max]形式
3、ezsurf(x,y,z):在方形区域 -2pi < s < 2pi, -2pi < t < 2pi上绘制参数平面 x = x(s,t), y = y(s,t), and z = z(s,t)
4、ezsurf(x,y,z,[smin,smax,tmin,tmax]) or ezsurf(x,y,z,[min,max]):使用指定的区域绘制参数平面
5、ezsurf(...,n):使用n x n网格在默认的区域绘制函数。n的默认值是60.
6、ezsurf(...,'circ'):在定义域为中心的磁盘绘制函数
7、ezsurf(axes_handle,...):plots into the axes with handle axes_handle instead of the current axes (gca).
8、h = ezsurf(...): returns the handles to a surface object in h
例子
1、ezsurf不绘制那些数学函数未定义的点(这些点设置为NaNs,这些点MATLAB不会绘制),通过绘制这个函数显示了奇异点或者不连续点的过滤。
f(x,y)=real(atan(x+iy)) 区域:
ezsurf('real(atan(x+i*y))')
使用surf用同样的数据产生一个表面图,即不过滤不连续点(也需要更多的步骤):
[x,y] = meshgrid(linspace(-2*pi,2*pi,60));
z = real(atan(x+i.*y));
surf(x,y,z)