
第三章数据和函数.ppt
54页第三章第三章 数据和函数的可视化数据和函数的可视化•数据的可视化是MATLAB的强大功能之一,而这仅仅是MATLAB图形功能的一部分, MATLAB图形功能主要包括数据可视化、创建用户图形界面和简单数据统计处理等•数据可视化类型主要分为以下几种:(1)plot:线图(2)bar:二维条状(3)stem:火柴杆图(4)stairs:阶梯图(5)area:面积图(6)pie:饼图(7)hist:直方图•通过MATLAB的指令来实现数据可视化工作是每位工程师都需要掌握的技巧3.1 基本绘图方法基本绘图方法在在MATLAB中进行数据可视化使用最频繁的绘制函数就是中进行数据可视化使用最频繁的绘制函数就是plot函数1.直角坐标中的两维曲线.直角坐标中的两维曲线((1))plot(y)--输入一个数组的情况输入一个数组的情况y=5*(rand(1,10) -.5)plot(y)title ('my first plot')xlabel('x'), ylabel('y')grid 画出画出10个随机数的曲线个随机数的曲线加标题,加标题,坐标轴说明坐标轴说明加坐标网格线加坐标网格线 t=0:0.5:4*piy=exp(-0.1*t).*sin(t)plot(t,y)y1=exp(-0.1*t).*sin(t+1)plot(t,y1,':') t是横坐标,是横坐标,y为纵坐标为纵坐标y1相位超前相位超前1弧度。
弧度 ((2))Plot(x,y)--输入两个数组的情况输入两个数组的情况•plot函数的基本使用语法格式:•绘制一条线: plot(x,y,’color_linestyle_marker’)•绘制多条线: plot(x1,y1,’clm1’,x2,y2,’clm2’,…)例:>>x=0:pi/1000:2*pi;>>y=sin(2*x+pi/4);>>plot(x,y)>>plot(x,y,x,y+1,x,y+2)•利用plot函数可以直接将矩阵的数据绘制在图形窗体中,这时plot函数将矩阵的每一列数据作为一条曲线绘制在窗体中•例>>A=pascal(5)•A = 1 1 1 1 1 1 2 3 4 5 1 3 6 10 15 1 4 10 20 35 1 5 15 35 70>>plot(A)plot函数的标识符函数的标识符色彩color说明时标marker说明线型linestyle说明r红色+加号-实线g绿色o圆圈--虚线b蓝色*星号:点线c青.点-.点划线m洋红x十字y黄色 s矩形k黑色 d菱形w白色^上三角 v下三角>右三角<左三角 p五边形 h六边形•例>>t=0:pi/20:2*pi; y1=sin(t); y2=sin(t-pi/2); y3=sin(t-pi); plot(t,y1,’-.rv’,t,y2,’--ks’,t,y3,’:mp’)•MATLAB图形窗体还可以划分为多个图形显示区域,每个图形显示区域彼此独立,用户可以根据自己的需要把数据绘制在制定的区域中。
使用subpolt函数即可•使用subpolt函数的基本用法: subplot(m,n,p)其中,m和n为将图形窗体分割成的行数和列数,p为选定的窗体区域的序号,以行元素优先排列2.线型、点型和颜色.线型、点型和颜色y2=exp(-0.1*t).*sin(t+1)plot(y2,'*b')plot(y1,':y')plot(y2,'+r') 蓝色蓝色*号线号线黄色虚线黄色虚线红色红色+号线号线 t=0:0.5:4*pi;y=exp(-0.1*t).*sin(t);y1=exp(-0.1*t).*sin(t+1);plot(t,[y;y1])t是向量,是向量,y是矩阵,如果是矩阵,如果t是列(行)向量,则是列(行)向量,则y的列(行)长度与的列(行)长度与t相同y的行(列)数就是曲的行(列)数就是曲线的根数线的根数这种方法要求所有的输出量有同样的长度和同样这种方法要求所有的输出量有同样的长度和同样的自变量向量不便于用户自行设定线型和颜色的自变量向量不便于用户自行设定线型和颜色 3.多条曲线的绘制.多条曲线的绘制有四种方法在一张图上显示多条曲线有四种方法在一张图上显示多条曲线((1)用)用plot(t,[y1,y2,…])命令命令((2)用)用hold命令命令plot(x1,y1,x2,y2,...xn,yn)plot(t,y,'+g',t2,y2,':r');title('线型,点型和颜色线型,点型和颜色'); xlabel('时间时间'),ylabel('Y') x1,y1,x2,y2,…xn,yn分别为数组对,每一对数分别为数组对,每一对数组可以绘出一条曲线,每一组数组对的长度可以不组可以绘出一条曲线,每一组数组对的长度可以不同,在后面都可以加线型标志符。
同,在后面都可以加线型标志符 为曲线图加标题为曲线图加标题 y3=5*y2; plotyy(t,y',t2,y3);grid, gtext('t, t2');gtext('y'),gtext('y3') Plotyy设有两个纵坐标,可以绘制两个设有两个纵坐标,可以绘制两个y尺度尺度不同的变量,不同的变量,x仍只用同一比例尺仍只用同一比例尺用用gtext命令可以标注纵坐标和曲线命令可以标注纵坐标和曲线 plot(t,y), hold on ,plot(t,y1,'g');t2=0:.2:2*pi; y2=exp(-0.5*t2).*sin(5*t2+1);plot(t2,y2);hold off 画完一张图用命令保持住,再画下一条曲线画完一张图用命令保持住,再画下一条曲线两张图的变量长度可以各不相同只要每张图两张图的变量长度可以各不相同只要每张图的自变量和因变量长度相同就可以的自变量和因变量长度相同就可以 ((4)用)用plotyy命令命令 ((3)在)在plot后使用多输入变量后使用多输入变量4. 屏幕控制和其他二维绘图屏幕控制和其他二维绘图((1)图形屏幕控制命令)图形屏幕控制命令 图形屏幕可以开、关,可以开几个图形窗,可以在一个图形图形屏幕可以开、关,可以开几个图形窗,可以在一个图形 窗内画几幅分图,每幅分图可以用不同坐标。
窗内画几幅分图,每幅分图可以用不同坐标figureclfholdhold onhold offcloseclose allsubplot(n,m,p)打开图形窗口;打开图形窗口;清除当前图形窗的内容;清除当前图形窗的内容;保持当前图形窗的内容;保持当前图形窗的内容;再次用再次用hold就解除保持状态就解除保持状态关闭当前图形窗口关闭当前图形窗口关闭所有图形窗口关闭所有图形窗口将图形窗口分为将图形窗口分为n*m个子图,在第个子图,在第p个子图处绘个子图处绘制图形 figure创建图形窗口创建图形窗口shg显示图形显示图形图形图形窗的窗的控制控制 gcf获取当前图形窗的句柄获取当前图形窗的句柄refresh刷新图形刷新图形clf清除当前图形窗清除当前图形窗close关闭图形窗关闭图形窗axes在任意位置创建坐标系在任意位置创建坐标系ishold保持当前图形状态为真保持当前图形状态为真轴系轴系的的控制控制gca获取当前坐标系的句柄获取当前坐标系的句柄box形成轴系方向形成轴系方向cla清除当前坐标系清除当前坐标系line创建直线创建直线surface创建曲面创建曲面图形图形对象对象 patch创建图形填充块创建图形填充块light创建照明创建照明image创建图象创建图象通用图形函数(通用图形函数(graphics))(h)set设置对象特性设置对象特性gcbo获得回叫对象的曲柄获得回叫对象的曲柄图形图形get获得对象特性获得对象特性gcbf获得回叫图形的曲柄获得回叫图形的曲柄句柄句柄reset复位对象特性复位对象特性drawnow直接等待图形事件直接等待图形事件操作操作delet删除对象删除对象findobj寻找具有特定值的对象寻找具有特定值的对象gco获得当前对象的句柄获得当前对象的句柄copyobj为图形对象及其子项作硬拷为图形对象及其子项作硬拷贝贝工具工具 closereq请求关闭图形窗请求关闭图形窗ishandle是图形句柄时为真是图形句柄时为真newplot说明说明Nextplot的的M文件文件ginput从鼠标作图形输入从鼠标作图形输入uiputfile给出存储文件的对话框给出存储文件的对话框杂项杂项 graymon设定图形窗灰度监视器设定图形窗灰度监视器uigetfile给出询问文件名的对话框给出询问文件名的对话框rbbox涂抹块涂抹块whitebg设定图形窗背景色设定图形窗背景色rotate围绕指定方向旋转对象围绕指定方向旋转对象zoom二维图形的放大和缩小二维图形的放大和缩小terminal设定图形终端类型设定图形终端类型warndlg警告对话框警告对话框((2)其他二维绘图命令)其他二维绘图命令stemstairsbarerrorbarhistfill(t,y,'颜色标注符颜色标注符')绘脉冲图绘脉冲图绘阶梯图绘阶梯图绘条形图绘条形图绘误差条形图绘误差条形图绘直方图绘直方图颜色标注符颜色标注符 rsubplot (2,2,1), stem(t,y);title('stem(t,y)')subplot (2,2,2), stairs(t,y);title('stairs(t,y)')subplot (2,2,3), bar(t,y);title('bar(t,y)')subplot (2,2,4), fill(t,y,'r');title(' fill(t,y,''r'')')subplot(1,1,1)loglogsemilogxsemilogypolar(theta,rho) 取消子图取消子图绘出以绘出以log10-log10为坐标刻度的对数图为坐标刻度的对数图使用半对数刻度绘图,使用半对数刻度绘图,x轴为轴为log10刻度,刻度,y轴为线性刻度。
轴为线性刻度使用半对数刻度绘图,使用半对数刻度绘图, y轴为轴为log10刻度,刻度,x轴为线性刻度轴为线性刻度极坐标绘图,角度极坐标绘图,角度theta为一个坐标,单位是弧度,另一坐为一个坐标,单位是弧度,另一坐标是矢径标是矢径rho 二维图形函数库二维图形函数库基本基本plot线性线性X-Y坐标绘图坐标绘图polar极坐标绘图极坐标绘图X-Yloglog双对数双对数X-Y坐标绘图坐标绘图plotyy用左、右两种用左、右两种Y坐标画图坐标画图图形图形semilogx半对数半对数X坐标绘图坐标绘图semilogy半对数半对数Y坐标绘图坐标绘图坐标坐标axis控制坐标轴比例和外观控制坐标轴比例和外观subplot在平铺位置建立图形轴系在平铺位置建立图形轴系控制控制 hold保持当前图形保持当前图形图图title标出图名(适用于三维图形)标出图名(适用于三维图形)gtext用鼠标定位文字用鼠标定位文字形形xlabelX轴标注(适用于三维图形)轴标注(适用于三维图形)legend标注图例标注图例注注ylabelY轴标注(适用于三维图形)轴标注(适用于三维图形)grid图上加坐标网格(适用于图上加坐标网格(适用于三维)三维)释释textt在图上标文字(适用于三维)在图上标文字(适用于三维)打打print打印图形或把图存为打印图形或把图存为M文件文件orient设定打印纸方向设定打印纸方向印印printop打印机默认选项打印机默认选项((3)虚数的绘图)虚数的绘图figure(2)t=0:.2:4*piz=exp((-0.1+i)*t)subplot(2,2,1)plot(z), pausetitle('复数绘图复数绘图plot(z)')subplot(2,2,2)plot(t,z), pausetitle('复数绘图复数绘图plot(t,z)')subplot(2,2,3), polar(angle(z), abs(z))title('polar(angle(z),abs(z))')subplot(2,2,4),semilogx(t,z)title('semilogx(t,z)')plot(t,real(z),imag(z))plot(z)中的中的z为复数单变量时(即含有非零的为复数单变量时(即含有非零的虚部),复数的实部为虚部),复数的实部为x坐标,虚部为坐标,虚部为y坐标坐标进行绘图。
即相当于进行绘图即相当于plot(real(z),imag(z))如果是双变量,如如果是双变量,如plot(t,z) ,则,则z中的虚数部中的虚数部分将被丢弃分将被丢弃要在复平面内绘多条曲线,必须用要在复平面内绘多条曲线,必须用hold命令,命令,或将多条曲线的实部和虚部明确地写出,作为或将多条曲线的实部和虚部明确地写出,作为函数的输入变元,即函数的输入变元,即Plot(real(z1),imag(z1),real(z2),imag(z2))子图子图1画出了复数图形;画出了复数图形;子图子图2只画出了只画出了z的实部随的实部随t 的变化规律,的变化规律,子图子图3是用极坐标绘制的复数曲线;是用极坐标绘制的复数曲线;子图子图4说明了半对数坐标绘图的结果说明了半对数坐标绘图的结果((4)坐标比例和尺寸的设定)坐标比例和尺寸的设定—axis命令命令v=axisaxis(v)axis('equal')axis('square')z=0:0.1:2*pi;x=sin(z);y=cos(z);subplot(1,2,1),plot(x,y)subplot(1,2,2), plot(x,y)axis('equal') 用户自行设定坐标比例,选择图形边界范用户自行设定坐标比例,选择图形边界范围。
返回值是图形边界的围返回值是图形边界的4元行向量,元行向量,v=[xmin, xmax, ymin,ymax]图形是三维的,返回值是三维坐标边界的图形是三维的,返回值是三维坐标边界的6元行向量元行向量控制图形的纵横比,使屏幕上控制图形的纵横比,使屏幕上x与与y的比例的比例尺相同尺相同. v=axisaxis('equal')axis('square')v = 0 1 0 15. 三维曲线和曲面三维曲线和曲面((1)空间曲线绘制)空间曲线绘制-plot3plot3(x,y,z,'s') z=0:0.1:4*pi;x=cos(z);y=sin(z);plot3(x,y,z,'r') 绘制空间曲线,绘制空间曲线, s是线型颜色符是线型颜色符 ((2)空间曲面的绘制)空间曲面的绘制mesh surf 直线直线--连接相邻的点构成三维曲面连接相邻的点构成三维曲面 小平面小平面--连接相邻的点构成三维曲连接相邻的点构成三维曲面面 sinc(r)=sin(r)/rx=-8:0.5:8; y=x';X=ones(size(y))*x;Y=y*ones(size(x));R=sqrt(X.*X+Y.*Y); z=sin(R)./R;mesh(z),pause r是是X-Y平面上的向径,绘制平面上的向径,绘制sin(r)/r函数的函数的立体图。
立体图 X、、Y方向各有方向各有33个样本点,个样本点,size多维矩阵多维矩阵的各维长度共建立的各维长度共建立33*33=1089 个网格个网格点的坐标矩阵点的坐标矩阵X和和Y,形成,形成33*33网格的矩网格的矩阵;阵; R表示数据点到原点的距离表示数据点到原点的距离R=sqrt(X.*X+Y.*Y)+eps; z=sin(R)./R;figure(2),mesh(z)R=abs(X)+abs(Y)+eps; z1=sin(R)./R;figure(3), surf(z1) 在在R=0(原点)处出现(原点)处出现0/0运算,得运算,得NaN结果eps浮点数相对精度,消除浮点数相对精度,消除NaNabs(X)+abs(Y)称为一范数称为一范数((3)其他三维绘图命令)其他三维绘图命令view(20, 0)view(37,30)view(方位角,(方位角, 俯仰角)可以变换立体图的视角俯仰角)可以变换立体图的视角默认值默认值shading flatshading interpshading faceted可将曲面上的小格平滑掉,使曲面成为光滑表面可将曲面上的小格平滑掉,使曲面成为光滑表面。
默认状态,曲面有小格默认状态,曲面有小格rotate3dcontourcoutour3 可用鼠标拖动立体图作空间连续转动可用鼠标拖动立体图作空间连续转动把曲面的等高线投影在把曲面的等高线投影在X-Y平面平面在三维立体图中画出等高线在三维立体图中画出等高线 subplot(2,2,1), R=sqrt(X.^2+Y.*Y); z=sin(R)./R; meshc(z), pause title(' meshc(z),shading flat'),shading flatSubplot(2,2,2), R=sqrt(X.^2+Y.*Y)+eps; z=sin(R)./R; mesh(z),pausetitle('meshz(z),shading interp'),shading interpsubplot(2,2,3), R=abs(X)+abs(Y)+eps; z1=sin(R)./R; surfc(z1),pausetitle('surfc(z1),shading flat'),shading flat, %colormp(gray)subplot(2,2,4), surfc(z1),view(20,0); rotate3dtitle('surfc(z1), view(20,0)') 6. 特殊图形和动画特殊图形和动画moviein getframe movie 预留存储空间以加快运行的速度预留存储空间以加快运行的速度存储图形,每个图形成一个很大的列向量,再用存储图形,每个图形成一个很大的列向量,再用N行这样的列保存行这样的列保存N幅图,成为一个大矩阵。
幅图,成为一个大矩阵用用movie命令把它们连起来重放命令把它们连起来重放 axis equal,m=moviein(16); for j=1:16 plot(fft(eye(j+16))); m(:,j)=getframe; endmovie(m,30) eye单位矩阵单位矩阵%因为产生的图形是圆形,将坐标设成相等比例因为产生的图形是圆形,将坐标设成相等比例%为变量为变量M预留预留16幅图的存储空间幅图的存储空间%做做16次循环次循环%画图画图%依次存入依次存入M中中16个画面放在矩阵个画面放在矩阵M中,每幅中,每幅16858*8=134864个个字节,字节,运行运行movie(m,30),将,将M中图形播放中图形播放30遍遍 fft Discrete Fourier transform.特殊图形和动画(特殊图形和动画(graphics))(u)area填满绘图区域填满绘图区域feather羽状图羽状图特特bar条形图条形图fill填满两维多边形填满两维多边形殊殊barh水平条形图水平条形图paretopareto图图的的bar3三维条形图三维条形图pie饼图饼图二二bar3h三维水平条形图三维水平条形图plotmatrix矩阵散布图矩阵散布图维维compass极坐标向量图极坐标向量图ribbon画成三维中的色带画成三维中的色带图图comet彗星轨迹图彗星轨迹图stem离散序列绘图离散序列绘图形形errorbar误差条图误差条图stairs阶梯图阶梯图等高等高contour等高线图等高线图pcolor伪彩色图伪彩色图线线contourf填充的等高线图填充的等高线图quiver箭头图箭头图图图contour3三维等高线图三维等高线图voronoivoronoi图图形形clabel等高线图标出字符等高线图标出字符comet3三维彗星轨迹图三维彗星轨迹图slice实体切片图实体切片图特殊特殊meshc三维曲面与等高线组合图三维曲面与等高线组合图surfc三维曲面与等高线组合图三维曲面与等高线组合图meshz带帘的三维曲面带帘的三维曲面trisurf三角表面图三角表面图三维三维pie3三维饼面三维饼面trimesh三角网状表面图三角网状表面图stem3三维图三维图waterfall瀑布图瀑布图图形图形quiver3三维图三维图image显示图象显示图象imread从图形文件读出图像从图形文件读出图像图像图像imagesc缩放数据并作为图像显示缩放数据并作为图像显示imwrite把图像写入图形文件把图像写入图形文件显示显示colormap颜色查找表颜色查找表imfinfo关于图形文件的信息关于图形文件的信息电影电影capture从屏幕抓取图形文件从屏幕抓取图形文件rotate绕给定方向旋转对象绕给定方向旋转对象和和moviein初始化电影帧存储器初始化电影帧存储器frame2im把电影帧转换为索引图象把电影帧转换为索引图象动画动画getframe获取电影帧获取电影帧im2frame把索引图像转换为电影帧把索引图像转换为电影帧movie重放录下的电影帧重放录下的电影帧实体实体 cylinder 生成圆柱体生成圆柱体sphere生成球体生成球体7. 彩色、光照和图像彩色、光照和图像mesh(x,y,z,w)colorbar W是颜色的值是颜色的值彩色条表示颜色与彩色条表示颜色与w值的一一对应关系值的一一对应关系 [x,y]=meshgrid([-2:.2:2]);z=x.*exp(-x.^2-y.^2);surf(x,y,z), colorbarfigure(2)surf (x,y,z,gradient(z)), colorbar 彩色轴表示曲面的梯度,作为第四维坐标彩色轴表示曲面的梯度,作为第四维坐标 colormap(cool)m=colormappcolor([1:65; 1:65]’)hot(8)pcolor([1:9;1:9]’)caxis([cmin cmax])surfl(peaks,[30,0]) 彩色条分为彩色条分为64个等级,颜色排序的默认值为个等级,颜色排序的默认值为HSV,用户,用户可以自行定义为可以自行定义为hot,,cool,,gray,,copper,,pink,,jet,,prism等,等, m=colormap将返回一个将返回一个64×3阶的矩阵阶的矩阵65个分割点,产生个分割点,产生64根彩条根彩条hot(8)将伪彩色板设置为将伪彩色板设置为hot色,改为色,改为8份。
份人工设定的命令人工设定的命令caxis([cmin cmax])彩色条中的最小值、最大值彩色条中的最小值、最大值光源在方位角光源在方位角30º俯仰角俯仰角0º方向照射时的方向照射时的peak曲面 •3.3 设置坐标轴和文字标注1、设定坐标轴 用户若对坐标轴不满意,可利用axis命令手动地设置x,y坐标轴范围axis([xmin, xmax, ymin, ymax])axis('equal')axis('square')axis offaxis on设定坐标范围设定坐标范围控制图形的纵横比,使屏幕上控制图形的纵横比,使屏幕上x与与y的比例尺的比例尺相同相同. 当前图形设置为方形当前图形设置为方形关闭坐标轴关闭坐标轴显示坐标轴显示坐标轴2. 分格线 使用grid命令显示分格线 grid on %显示分格线 grid off %不画分格线3. 文字标注 在绘制图形时,可以在图形上加一些说明,如图形名称、图形某一部分的含义、坐标说明等将这些操作称为添加文字标记1)添加图名 title(‘加图形标题’)(2)添加坐标轴名 xlabel(‘加x轴标记’) ylabel(‘加y轴标记’)(3)添加图例 给图形加图例命令为legend。
该命令把图例放置在图形的空白处,用户可以通过鼠标移动图例,将其放在希望的位置4)添加文本注释(text) text函数的基本语法:text(x,y,’string’)其中,x和y是文本注释添加的坐标值例.为正弦、余弦曲线增加图例 x=0:pi/100:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,x,y2,’--’); title(‘正弦、余弦曲线’); xlable(‘x’); ylable(‘y’); legend(‘sin(x)’,’ cos(x)’);3.4 多图绘制1.同一窗口多个子图 subplot(m,n,p)函数将当前图形窗口分成m×n个绘图区,按行优先编号,且选定第p个区为当前活动区例.在一个图形窗口中同时绘制正弦、余弦、正切、余切曲线 x=linespace(0,2*pi,60); y=sin(x);z=cos(x);t=tan(x); subplot(2,2,1); plot(x,y); title(‘sin(x)’); axis ([0 2*pi -1 1]); subplot(2,2,2); plot(x,z); title(‘cos(x)’); axis ([0 2*pi -1 1]); subplot(2,2,3); plot(x,t); title(‘tangent(x)’); axis([0 2*pi -40 40]); sunplot(2,2,4); plot(x,cot(x)); title(‘cotangent(x)’); axis([0 2*pi -40 40]);3.5 三维立体图形1.三维曲线 最基本的三维图形函数为plot3,它是将二维函数plot的有关功能扩展到三维空间。
函数格式:plot3(x1,y1,z1,c1,x2,y2,z2,c2…)例. 绘制三维螺旋曲线 t=0:pi/50:10*pi; y1=sin(t);y2=cos(t); plot3(y1,y2,t); title(‘helix’);text(0,0,0,’origin’); xlabel(‘sin(t)’);ylabel(‘cos(t)’);zlabel(‘t’);grid;5. 三维曲线和曲面三维曲线和曲面((1)空间曲线绘制)空间曲线绘制-plot3z=0:0.1:4*pi;x=cos(z);y=sin(z);plot3(x,y,z,'r') 绘制空间曲线,绘制空间曲线, r表示线型颜色为红色表示线型颜色为红色 2. 三维网线图和曲面图(1)三维图形的数据准备画函数z=f(x,y)所代表的三维空间曲面,需要做以下数据准备:a.确定自变量x,y的取值范围和取值间隔 x=x1:dx:x2; y=y1: dy :y2;b.利用MATLAB指令产生“格点”矩阵 [X,Y]=meshgrid(x,y);c.计算在自变量采样“格点”上的函数值,即Z=f(X,Y)。
2)网线图、曲面图基本指令格式 mesh(Z) %以Z为矩阵列、行下标为x、y轴自变量,画网线图 mesh(X,Y,Z) %最常用的网线图调用格式 mesh(X,Y,Z,C) %最完整调用格式,C是网线图颜色指令 surf(Z) %以Z为矩阵列、行下标为x、y轴自变量,画曲面图 surf(X,Y,Z) %最常用的曲面图调用格式 surf(X,Y,Z,C) %最完整调用格式,C是曲面图颜色指令x=-8:0.5:8; y=x;[X,Y]=meshgrid(x,y);R=sqrt(X.*X+Y.*Y)+eps;Z=sin(R)./R;mesh(X,Y,Z);x=-8:0.5:8; y=x;[X,Y]=meshgrid(x,y);R=sqrt(X.*X+Y.*Y)+eps;Z=sin(R)./R;surf(X,Y,Z);在在R=0(原点)处出现(原点)处出现0/0运算,得运算,得NaN结果eps浮点数相对精度,消除浮点数相对精度,消除NaN例. 绘制三维网格图和曲面图z=sin(sqrt(x2+y2))/sqrt(x2+y2)((3)其他三维绘图命令)其他三维绘图命令view(20, 0)view(37,30)view(方位角,(方位角, 俯仰角)可以变换立体图的视角俯仰角)可以变换立体图的视角默认值默认值shading flatshading interpshading faceted可将曲面上的小格平滑掉,使曲面成为光滑表面。
可将曲面上的小格平滑掉,使曲面成为光滑表面默认状态,曲面有小格默认状态,曲面有小格rotate3dcontourcoutour3 可用鼠标拖动立体图作空间连续转动可用鼠标拖动立体图作空间连续转动把曲面的等高线投影在把曲面的等高线投影在X-Y平面平面在三维立体图中画出等高线在三维立体图中画出等高线 subplot(2,2,1), R=sqrt(X.^2+Y.*Y); z=sin(R)./R; meshc(z), pause title(' meshc(z),shading flat'),shading flatSubplot(2,2,2), R=sqrt(X.^2+Y.*Y)+eps; z=sin(R)./R; mesh(z),pausetitle('meshz(z),shading interp'),shading interpsubplot(2,2,3), R=abs(X)+abs(Y)+eps; % abs(X)+abs(Y)称为一范数称为一范数z1=sin(R)./R; surfc(z1),pausetitle('surfc(z1),shading flat'),shading flat, %colormp(gray)subplot(2,2,4), surfc(z1),view(20,0); rotate3dtitle('surfc(z1), view(20,0)') 。
