
实验二MATLAB绘制图形课件.ppt
49页实验二实验二 MATLAB绘制图形绘制图形(一)(一) 实验类型:验证性实验类型:验证性(二)(二) 实验类别:基础实验实验类别:基础实验(三)(三) 实验学时数:实验学时数:2学时学时.一、二维图形一、二维图形实验内容实验内容二、三维图形二、三维图形 一、二维图形一、二维图形 1 1、、 基本二维绘图命令基本二维绘图命令 (1) plot函数函数 plot(x):缺省自变量的绘图格式,:缺省自变量的绘图格式,x可为向量或矩阵可为向量或矩阵. 当当x为向量时,以为向量时,以x元素值为纵坐标,以相应元素下标为元素值为纵坐标,以相应元素下标为横坐标绘图横坐标绘图. 当当x为实矩阵时,按列绘制曲线,每列的元素值为纵坐标,为实矩阵时,按列绘制曲线,每列的元素值为纵坐标,相应元素下标为横坐标相应元素下标为横坐标. 当当x为为m×n矩阵时,就有矩阵时,就有n条条曲线曲线.例例1 x为向量时为向量时, plot(x)clearx=[3 5 7 6 12 24 15 33 6 9 7 2];plot(x)((2 2))plot(x,yplot(x,y) )::基本格式,基本格式,x和和y可为向量或矩阵可为向量或矩阵. 1. 如果如果x,,y是同维向量,以是同维向量,以x元素为横坐标,以元素为横坐标,以y元素元素为纵坐标绘图为纵坐标绘图. 2. 如果如果x是向量,是向量,y是有一维与是有一维与x元素数量相等的矩阵,元素数量相等的矩阵,则以则以x为共同横坐标,为共同横坐标, y元素为纵坐标绘图,曲线数目元素为纵坐标绘图,曲线数目为为y的另一维数的另一维数. 3. 如果如果x,,y是同维矩阵,则按列以是同维矩阵,则按列以x,,y对应列元素为对应列元素为横、纵坐标绘图,曲线数目等于矩阵列数横、纵坐标绘图,曲线数目等于矩阵列数.例例2 x2 x,,y y是同维向量时是同维向量时, plot, plot((x x,,y y))clearx=(0:pi/10:2*pi);y=sin(x);plot(x,y) 例例3 在在0≤x≤2 区间内,绘制曲线区间内,绘制曲线 y=2e-0.5xcos(4πx). x=(0:pi/100:2*pi); y=2*exp(-0.5*x).*cos(4*pi*x); plot(x,y)例例4 绘制曲线绘制曲线t=(0:0.1:2*pi);x=t.*sin(3*t);y=t.*sin(t).*sin(t);plot(x,y)2 2、、多条曲线绘图格式多条曲线绘图格式plot(x1, y1, x2, y2,…)plot(x1, y1, x2, y2,…)::.在同一坐标系中绘制多个图形,以在同一坐标系中绘制多个图形,以x1,,x2…元素为横元素为横坐标值,坐标值,对应的对应的y1,,y2…元素为纵坐标绘图。
元素为纵坐标绘图注注;; x=linspace(0,7) %在在0到到7之间等分取之间等分取100个分点个分点 例例5 5 程序如下程序如下: : clear %可不写可不写 x=linspace(0,7); y1=sin(2*x); y2=sin(x.^2); y3=(sin(x)).^2; plot(x,y1,x,y2,x,y3)例例6 分析下列程序绘制的曲线分析下列程序绘制的曲线. x1=linspace(0,2*pi); x2=linspace(0,3*pi); x3=linspace(0,4*pi); y1=sin(x1); y2=1+sin(x2); y3=2+sin(x3); x=[x1;x2;x3]'; y=[y1;y2;y3]'; plot(x,y,x1,y1-1)3、、 函数函数plot(x,y,’s’) plot(x,y,’s’) ---开关格式,开关量字符串开关格式,开关量字符串s设定曲线颜色、设定曲线颜色、线型及标示符号,由一对单引号括起来线型及标示符号,由一对单引号括起来.plot(x1,y1,’s1’,x2,y2,’s2’,…)图形颜色、标记和线形参数表图形颜色、标记和线形参数表色彩字符所定颜色线型字符线型格式标记符号数据点形式标记符号数据点形式y黄-实线(默认).点<左三角形m紫:点线o圆s方形c青-.点划线x叉号d菱形r红--虚线+加号h六角星g绿*星号p五角星b篮v下三角形w白^上三角形k黑>右三角形 数据点形式数据点形式 square 方形 diamond 菱形 pentagram 五角星 hexagram 六角星例例7>> x=linspace(0,7);>> y1=sin(2*x);%曲线1:红色实线,+号显示数据点>> y2=sin(x.^2); %曲线2:黑色点线,*号显示数据点>> y3=(sin(x)).^2; %曲线3:蓝色虚线,上三角形显示数据点>> plot(x, y1, 'r+-', x, y2, 'k*:', x, y3, 'b--^')2 2、对函数自适应采样的绘图函数、对函数自适应采样的绘图函数fplotfplot指令指令q用来自动画一个已定义的函数分布图,而无须用来自动画一个已定义的函数分布图,而无须产生绘图所要的一组数据做为变量产生绘图所要的一组数据做为变量. .采用自适应采用自适应步长控制来画出函数的示意图,在函数变化激步长控制来画出函数的示意图,在函数变化激烈的区间,采用小的步长,否则采用大的步长烈的区间,采用小的步长,否则采用大的步长. .总之,使计算量与时间最小,图形尽可能精确总之,使计算量与时间最小,图形尽可能精确. . fplotfplot函数调用格式:函数调用格式: fplot(fname,lims,tolfplot(fname,lims,tol, ,选项选项) ) 其中其中fnamefname为函数名,以字符串形式出现,为函数名,以字符串形式出现,limslims为为x,yx,y的取值范围,的取值范围,toltol为相对允许误差,其系统默认值为为相对允许误差,其系统默认值为2e-3. 2e-3. 选项定义与选项定义与plotplot函数相同函数相同. .例例8 8 用用fplotfplot函数绘制函数绘制f(xf(x)=)=cos(tan(πxcos(tan(πx))))的曲线的曲线. . 程序如下:程序如下:fplot('cos(tan(pi*x))',[ 0,1],1e-4)subplotsubplot函数调用格式:函数调用格式:subplot(m,n,psubplot(m,n,p) ) 该函数将当前图形窗口分成该函数将当前图形窗口分成m m××n n个绘图区,即每个绘图区,即每行行n n个,共个,共m m行,区号按行优先编号,且选定第行,区号按行优先编号,且选定第p p个区个区为当前活动区为当前活动区. . 在每一个绘图区允许以不同的坐标在每一个绘图区允许以不同的坐标系单独绘制图形系单独绘制图形. .3 3、图形窗口的分割、图形窗口的分割采用图形窗口分割方法进行比较显示采用图形窗口分割方法进行比较显示 cleart=0:pi/10:2*pi;y1=sin(t);y2=cos(t);y3=cos(t+pi/2);y4=cos(t+pi); subplot(2,2,1); plot(t,y1); %将图形窗口分割成两行两列将图形窗口分割成两行两列,,y1为第为第1行第行第1列列subplot(2,2,2); plot(t,y2); %将图形窗口分割成两行两列将图形窗口分割成两行两列,,y2为第为第1行第行第2列列subplot(2,2,3); plot(t,y3); %将图形窗口分割成两行两列将图形窗口分割成两行两列,,y3为第为第2行第行第1列列subplot(2,2,4); plot(t,y4); %将图形窗口分割成两行两列,将图形窗口分割成两行两列,y4为第为第2行第行第2列列绘制图形如下绘制图形如下4、特殊的二维函数命令、特殊的二维函数命令其它坐标系下的二维数据曲线图其它坐标系下的二维数据曲线图1 1)对数坐标)对数坐标绘制对数和半对数坐标曲线的函数,绘制对数和半对数坐标曲线的函数,其调用格式为:其调用格式为:semilogx(x1,y1,semilogx(x1,y1,选项选项1,x2,y2,1,x2,y2,选项选项2,2,……) )semilogy(x1,y1,semilogy(x1,y1,选项选项1,x2,y2,1,x2,y2,选项选项2,2,……) )loglog(x1,y1,loglog(x1,y1,选项选项1,x2,y2,1,x2,y2,选项选项2,2,……) )例例9 9 在对数坐标系中绘图在对数坐标系中绘图. .clearclearx=logspace(-1,2);x=logspace(-1,2);% %在在10^(-1)10^(-1)到到10^210^2之间产生之间产生5050个对数等分个对数等分的行向量的行向量subplot(1,2,1);subplot(1,2,1);loglog(x,10*loglog(x,10*exp(x),'-pexp(x),'-p')')grid on %grid on %在所画出的图形坐标中加入栅格在所画出的图形坐标中加入栅格subplot(1,2,2);subplot(1,2,2);semilogx(x,cos(10.^x))semilogx(x,cos(10.^x))grid on %grid on %在所画出的图形坐标中加入栅格在所画出的图形坐标中加入栅格 绘制图形如下绘制图形如下clearx=logspace(-1,2);%在在10^(-1)到到10^2之间产生之间产生50个个对数等分的行向量对数等分的行向量subplot(121);loglog(x,10*exp(x),'-p')subplot(122);semilogx(x,cos(10.^x))如果在图中不加栅格如果在图中不加栅格程序如下:程序如下:绘制图形如下:绘制图形如下:2 2)极坐标图)极坐标图polarpolar函数用来绘制极坐标图,函数用来绘制极坐标图,其调用格式:其调用格式:polar(theta,rhopolar(theta,rho, ,选项选项) )其中其中thetatheta为极坐标极角,为极坐标极角,rhorho为极坐标半径,选项的内为极坐标半径,选项的内容与容与plotplot函数相似函数相似例例10 10 绘制绘制r=r=sin(t)cos(tsin(t)cos(t) )的极坐标图,并标记数据点的极坐标图,并标记数据点. .程序如下:程序如下: t=0:pi/50:2*pi;t=0:pi/50:2*pi; r= r=sin(tsin(t).*).*cos(tcos(t);); polar(t,rpolar(t,r,'-*');,'-*'); 例例11 画出一花瓣状图形画出一花瓣状图形theta = (-pi:0.01:pi); rho(1,:) = 2*sin(5*theta).^2;rho(2,:) = cos(10*theta).^3;rho(3,:) = sin(theta).^2;rho(4,:) = 5*cos(3.5*theta).^3;for i = 1:4 % 极坐标图形输出函数 polar(theta,rho(i,:)) pauseend3)设定轴的范围)设定轴的范围axis(([xmin xmax ymin ymax]))4)文字标示)文字标示gtext(‘字符串字符串’) %利用鼠标在图形的某一位置标示%利用鼠标在图形的某一位置标示字符串字符串. title(‘字符串字符串’) %在所画图形的最上端显示说明该%在所画图形的最上端显示说明该图图形标题的字符串形标题的字符串.xlabel(‘字符串字符串’),,ylabel(‘字符串字符串’) %设置%设置x,,y坐标坐标轴轴 的名称的名称. text(x, y, s);%指定位置加标注%指定位置加标注axis square%将图形设置为正方形将图形设置为正方形5)legend(‘字符串1’,‘字符串2’,…,‘字符串n’)在屏幕上开启一个小视窗,然后依据绘图命令 的先后次序,用对应的字符串区分图形上的线. 6)surf(x,y.z.c)绘制表面图和亮度5 5、、 图形修饰与控制图形修饰与控制title —— 给图形加标题xlable —— 给x轴加标注ylable —— 给y轴加标注text —— 在图形指定的任意位置加标注gtext —— 利用鼠标将标注加到图形任意位置grid on —— 打开坐标网格线grid off——关闭坐标网格线legend —— 添加图例axis —— 控制坐标轴刻度例例12 绘制正弦和余弦曲线,并加入网格和标注绘制正弦和余弦曲线,并加入网格和标注t=(0:0.1:10);y1=sin(t);y2=cos(t);plot(t,y1,'r',t,y2,'b--');x=[1.7*pi;1.6*pi];y=[-0.3; 0.7];s=['sin(t)';'cos(t)'];text(x, y, s);%指定位置加标注title('正弦和余弦曲线');%标题legend('正弦','余弦')%添加图例注解xlabel('时间')%x坐标名ylabel('正弦&余弦')%y坐标名grid on%添加网格axis square%将图形设置为正方形6 6、采用、采用holdhold函数对图形进行比较显示函数对图形进行比较显示 cleart=0:pi/10:2*pi;y1=sin(t);y2=cos(t);y3= sin(t)-cos(t);plot(t,y1);hold on; %后续图形叠加显示plot(t,y2);hold on;plot(t,y3); 二、三维图形二、三维图形 1 1、 基本的三维绘图命令、 基本的三维绘图命令 三维曲线图三维曲线图plot3函数可以绘制三维曲线: plot3(x1, y1, z1, 's1', x2, y2, z2, 's2'…)例例13 函数函数plot3绘制的三维曲线图绘制的三维曲线图cleart=0:pi/50:10*pi;plot3(t,sin(t),cos(t),'r:')grid on %添加网格 三维网格图三维网格图mesh函数为数据点绘制网格线:mesh(z) —— z为n×m的矩阵,x与y坐标为元素的下标位置mesh(x, y, z) —— x, y, z分别为三维空间的坐标位置三维曲面图三维曲面图三维曲面的绘图是由surf函数完成的,用法和mesh类似。
z = 3*(1-x).^2.*exp(-(x.^2) (y+1).^2) ... - 10*(x/5 - x.^3 - y.^5).*exp(-x.^2-y.^2) ... - 1/3*exp(-(x+1).^2 - y.^2)peaks(40); %peaks可产生一个凹凸有致的曲面注:注:其方程式为:例例14 分别用分别用mesh函数和函数和surf函数绘制高斯矩阵函数绘制高斯矩阵 clear z=peaks(40); %peaks可产生一个凹凸有致的曲面 mesh(z);% 网格线 figure;%产生新的图形窗口 surf(z) %着色表面图观察点clearz=peaks(40);subplot(2,2,1); mesh(z);%绘制子图1(默认视点)subplot(2,2,2);mesh(z);view(-15,60); %指定子图2的视点subplot(2,2,3);mesh(z);view(-90,0); %指定子图3的视点subplot(2,2,4);mesh(z);view(-7,-10) %指定子图4的视点例例15 peaks(40); shading interp;%曲面的颜色更加柔顺平滑 colormap(hot) %涂颜色 例例16 peaks(40);colormap(hot);colorbar('horiz') ;figure(2);colormap(cool);colorbar('horiz')加水平颜色条.例例17 绘制三维球面绘制三维球面[x,y,z]=sphere(30);%30是画出来的球面的经纬分是画出来的球面的经纬分面数面数...30的话就是的话就是30个经度个经度, 30个纬度个纬度 surf(x,y,z); %着色表面图例例18 绘出对数函数绘出对数函数的图形的图形.【Matlab源程序】 z=cplxgrid(20); w=log(z); for k=0:3 w=w+i*2*pi; surf(real(z),imag(z),imag(w),real(w)); hold on title('Lnz') end view(-75,30) 绘图结果如下绘图结果如下:例例19 研究电偶极子研究电偶极子(Diploe)所产生的电势和电场强度所产生的电势和电场强度.设在设在处有电荷处有电荷 则在电荷则在电荷,在在处有电荷处有电荷所在平面上任何一点的电势为所在平面上任何一点的电势为 ,其中其中【MatlabMatlab源程序源程序】根据解析函数理论中求复势的方法根据解析函数理论中求复势的方法, ,可由等势线求出可由等势线求出电力线方程电力线方程. . 下面给出计算机仿真方法求解:仿真下面给出计算机仿真方法求解:仿真(MATLAB) 程序和仿真结果程序和仿真结果clear ; clf;q=2e-6;k=9e9;a=1.5;b=-1.5;x=-6:0.6:6;y=x;[X,Y]=meshgrid(x,y);rp=sqrt((X-a).^2+(Y-b).^2); rm=sqrt((X+a).^2+(Y+b).^2);V=q*k*(1./rp-1./rm); % 计算电势[Ex,Ey]=gradient(-V); %计算电场强度AE=sqrt(Ex.^2+Ey.^2);Ex=Ex./AE;Ey=Ey./AE; %场强归一化cv=linspace(min(min(V)),max(max(V)),49); %用黑实线绘等势线contour (X,Y,V,cv,'k-')%axis('square')title('\fontname{宋体}\fontsize{22}电偶极子的场和等势线'),hold onquiver(X,Y,Ex,Ey,0.7)plot(a,b,'wo',a,b,'w+') plot(-a,-b,'wo',-a,-b,'w-')xlabel('x'); ylabel('y'),hold off结果如图: 1、用、用plot命令绘制下列函数曲线图像命令绘制下列函数曲线图像.作业:写出以下各题实验报告作业:写出以下各题实验报告.2、用、用plot命令在同一坐标下绘制下列函数曲线图像命令在同一坐标下绘制下列函数曲线图像. 3、、 在在0≤x≤2 区间内,用区间内,用fplot函数绘制下列函数函数绘制下列函数 曲线图像。
曲线图像 。
