六.图形功能 1.二维图形(命令词:plot) 例1:已知ⅹ取值为1,2,3, y取值为0,0.5,0.7,1.1,0.9,0.2 请以ⅹ为横坐标、y为纵坐标,画出折线图。 解:以下三个方法中的任意一个都可以,其结果完全一样 (1)x=[1,2,3,4,56]y=0,0.5,0.7,11,0.9,0.2plot(xy) (2)x=1:6;y=|0,0.5,0.7,11,0.9,0.2 Plot(x,y) (3)y=|0.,0.5,0.7,11,0.9,0.2 plot(y) 例2:画出正弦曲线y=sin(x)在区间[04x]上的图形 练习:y=x2,y=√x,y=e,y=hx, x2.画图 一图多线:(在同一个坐标图中画两条以上的曲线) 法一:例1:x=0pi102*piyl=sin(x)y2=cos(x)plot(xyl,xy2) F] 2: x=0: pi/10: 2*pi y 1=sin(x):y 2=cos(x); y3=(sin(xF+cos(x )/2: plot(x, yl, x, y2, x, y3) 例3:在同一图中画四条线,横坐标范围是[0,2丌],函数分别是 1+sin x(2T-x) y≡06 xl=0pi10:2*piyl=(1+sinx)2x2=[0,2*pi]y2=x2/(2*pi) y3=x1.*(2*pi- x1)pi^2y4=[060.6]; plot(xl, y 1, x2, y2, xl,y3, 2, y4) 法二:重做例3:只需把 plot(xl, y1,x2,y2,xl,y3,x2,y4改成 hold on, plot(xl, y 1),plot(x1, y3), plot(x2, y2), plot(x2, y4 ),hold off 习题:在同一图中画四条线,横坐标范围是[1,2丌+1],函数分别是 y=csx,y=1--2(x-1)2z+1-x),y=04,s 加“坐标网格” 法一:在plot(…)之后紧跟grid 演示:plot(x1y1,x2,y2x1,y3,x2,y4)2grid Ex* hold on, plot(xl y 1),plot(x1, y3),plot( 2, y2),plot(x2, y4 ),grid, hold off 法二:事后补加(先画好没有网格的图,再补加网格) 演示:先命令 plot(x1,y1),再命令grid
六.图形功能 1.二维图形 (命令词: plot ) 例 1:已知 x 取值为 1, 2, 3, 4, 5, 6 y 取值为 0, 0.5, 0.7, 1.1, 0.9, 0.2 请以 x 为横坐标、y 为纵坐标,画出折线图。 解:以下三个方法中的任意一个都可以,其结果完全一样 (1)x=[1,2,3,4,5,6];y=[0,0.5,0.7,1.1,0.9,0.2];plot(x,y) (2)x=1:6;y=[0,0.5,0.7,1.1,0.9,0.2];plot(x,y) (3)y=[0,0.5,0.7,1.1,0.9,0.2];plot(y) 例 2:画出正弦曲线 y=sin(x)在区间 [0,4 ] 上的图形。 练习: , , , ln , 1 . 2 2 y x y x y e y x y x x = = = = = − 画图 一图多线:(在同一个坐标图中画两条以上的曲线) 法一:例 1:x=0:pi/10:2*pi;y1=sin(x);y2=cos(x);plot(x,y1,x,y2) 例 2:x=0:pi/10:2*pi;y1=sin(x);y2=cos(x); y3=(sin(x)+cos(x))/2;plot(x,y1,x,y2,x,y3) 例 3:在同一图中画四条线,横坐标范围是[0,2 ],函数分别是 y= 2 1+ sin x y= 2 x y= (2 ) 1 2 x − x y 0.6 x1=0:pi/10:2*pi;y1=(1+sin(x))/2;x2=[0,2*pi];y2=x2/(2*pi); y3=x1.*(2*pi-x1)/pi^2;y4=[0.6,0.6]; plot(x1,y1,x2,y2,x1,y3,x2,y4) 法二:重做例 3:只需把 plot(x1,y1,x2,y2,x1,y3,x2,y4)改成 hold on,plot(x1,y1),plot(x1,y3),plot(x2,y2),plot(x2,y4),hold off 习题:在同一图中画四条线,横坐标范围是[1,2 +1],函数分别是 y x 2 = cos , ( 1)(2 1 ) 1 1 2 y = − x − + − x , y 0.4 , . 50 2 x y = 加“坐标网格”: 法一:在 plot(……) 之后紧跟 grid 演示:plot(x1,y1,x2,y2,x1,y3,x2,y4),grid 或者 hold on,plot(x1,y1),plot(x1,y3),plot(x2,y2),plot(x2,y4),grid,hold off 法二:事后补加(先画好没有网格的图,再补加网格) 演示:先命令 plot(x1,y1) ,再命令 grid
加“标记”:(1)给图加标题:面e“***”) (2)给坐标轴加标记:横轴: xlabel(**) 纵轴: ylabel(“***”) (3)给曲线加标记: text(aaa, bbb***) 说明:这四个命令的用法与前面grd相同(紧跟plot(.),或事后补加); 红色符号是本质(包括:小括号、逗号、单引号),不可改变; 本***是你准备加注的字符,由你自己决定; 你准备把“曲线标记”放在哪个位置?答:a是横坐标,bb是纵坐标 演示:略写,教师在课堂机器上演示。 对坐标系进行控制 axis equal 使得横轴与纵轴的单位长度相同 axis square 使得图呈现正方形; axis(ax, bbx, aay, bby)实现你的愿望:使得横坐标从ax到bbx、纵坐标 从ay到bby 演示:略写,教师在课堂机器上演示 多幅图形:在同一个画面上建立多个坐标系,每个坐标系中各自画图、互不干扰 关键词: subplot(m, n, p),把画面分割成m×n个图形区域,p代表第几个图 例如:借用前面的x1,x2,yl,y2,y3,y4 subplot(1, 4, 1),plot(xl, yl) subplot(1, 4, 2), plot(x2, y2),grid subplot(1, 4, 3), plot(xl, y3),grid subplot(1, 4, 4), plot(x2, y4) 结果真难看!改 subplot(2, 2, 1),plot(xl, yl) subplot(2, 2, 2), plot(x2, y2),grid subplot(2, 2, 3), plot(xl, y3),grid subplot(2, 2, 4), plot(x2, y4) 结果好看了! 习题:同一个画面上6幅图 sin x, sin x(1+cos x), tanx, x, x 2.三维图形 先不动脑筋,看别人做的一个三维曲面图,感受一下 Matlab作图效果 例:画出曲面:=/(xy)=smy2+y2 7.5≤X≤75 ≤y≤7.5 A: x=-75: 0.5:7.5; y=x; [ X, Y=meshgrid(x, y);
加“标记”:(1)给图加标题:title(‘******’) (2)给坐标轴加标记:横轴:xlabel(‘******’) 纵轴:ylabel(‘******’) (3)给曲线加标记:text(aaa,bbb,‘******’) 说明:这四个命令的用法与前面 grid 相同(紧跟 plot(….),或事后补加); 红色符号是本质(包括:小括号、逗号、单引号),不可改变; ***** 是你准备加注的字符,由你自己决定; 你准备把“曲线标记”放在哪个位置? 答:aaa 是横坐标,bbb 是纵坐标。 演示:略写,教师在课堂机器上演示。 对坐标系进行控制: axis equal 使得横轴与纵轴的单位长度相同; axis square 使得图呈现正方形; axis(aax,bbx,aay,bby) 实现你的愿望:使得横坐标从 aax 到 bbx、纵坐标 从 aay 到 bby . 演示:略写,教师在课堂机器上演示。 多幅图形:在同一个画面上建立多个坐标系,每个坐标系中各自画图、互不干扰 关键词:subplot(m,n,p) , 把画面分割成 mn 个图形区域,p 代表第几个图。 例如:借用前面的 x1, x2 , y1, y2, y3, y4, subplot(1,4,1),plot(x1,y1) subplot(1,4,2),plot(x2,y2),grid subplot(1,4,3),plot(x1,y3),grid subplot(1,4,4),plot(x2,y4) 结果真难看! 改 subplot(2,2,1),plot(x1,y1) subplot(2,2,2),plot(x2,y2),grid subplot(2,2,3),plot(x1,y3),grid subplot(2,2,4),plot(x2,y4) 结果好看了! 习题:同一个画面上 6 幅图: x sin x, sin x(1 cos x), tan x, x , x , e −1 1.5 + 2.三维图形 先不动脑筋,看别人做的一个三维曲面图,感受一下 Matlab 作图效果。 例:画出曲面 . 7.5 7.5 7.5 7.5 , sin ( , ) 2 2 2 2 − − + + = = y x x y x y z f x y 解:x=-7.5:0.5:7.5;y=x; [X,Y]=meshgrid(x,y);
R=sqrt(X. 2+Y. 2)+eps; ZFsin (R)/R; mesh(X, Y, Z (1)带网格的曲面图(关键词:mesh) 0.5≤x≤0.5 例如:画曲面=f(xy)=1-x2-y2,-055y505 x=0.5:0.1:0.5;y=X X,Y= meshgrid(x,y)}(组建三维图形的XY数组) Z=sqrt(X.^2-Y.^2); mesh(X,Y, z (画图) (2)曲面的等高线图(关键词: contour.3) 续上题:把mesh(X,Y,Z改为 contour3.(X,Y,Z5) (其中,5是准备画5条等高线) (3)空间三维曲线图(关键词:plot3) 例:螺旋线的参数方程为:x=sint,y=cos1,z=t 试在范围-20≤t≤20内,画出该曲线 fi: t-20: pi/30: 20; x=sin(t);y=cos(t); z=t;plot(x, y, z) 习题:曲面z=x2+y2,-2≤x,y≤2,分别画网格图和等高线图。 曲线x=t,y=sint,z=sin(2n).自己适当取t的范围 七.程序 1.编写、保存、打开、修改、执行程序 编写新程序:击活菜单Fie,选New,单击M-ie,进入编辑区,可编写程序。 例1:(演示:怎样编写、保存、打开、修改、执行程序?) 请按照规律1+2=3,2+3=5,3+5=8,5+8=13写出30个数作为一个数 组a=[1,2,3,5,8,13,] 简要说明:(1)保存新文件:Fle-Save,文件名必须字母打头 (2)打开旧文件: File----Open-文件名,打开以后就可修改内容 (3)执行: Debug--Run 2.关系运算,逻辑运算 (1)关系运算:(比较两个数) 共6种运算符:<> 小于大于小于或等于大于或等于等 不等于
R=sqrt(X.^2+Y.^2)+eps;Z=sin(R)./R; mesh(X,Y,Z) (1)带网格的曲面图 (关键词:mesh ) 例如:画曲面 . 0.5 0.5 0.5 0.5 ( , ) 1 , 2 2 − − = = − − y x z f x y x y x=-0.5:0.1:0.5;y=x; [X,Y]=meshgrid(x,y); (组建三维图形的 X,Y 数组) Z=sqrt(1-X.^2-Y.^2); mesh(X,Y,Z) (画图) (2)曲面的等高线图 (关键词:contour3 ) 续上题:把 mesh(X,Y,Z) 改为 contour3(X,Y,Z,5) (其中,5 是准备画 5 条等高线) (3)空间三维曲线图 (关键词:plot3 ) 例:螺旋线的参数方程为: x = sin t, y = cost, z = t . 试在范围− 20 t 20 内,画出该曲线。 解:t=-20:pi/30:20;x=sin(t);y=cos(t);z=t;plot3(x,y,z) 习题:曲面 , 2 , 2 2 2 z = x + y − x y ,分别画网格图和等高线图。 曲线 x = t, y = sin t, z = sin( 2t) . 自己适当取 t 的范围。 七.程序 1.编写、保存、打开、修改、执行程序 编写新程序:击活菜单 File,选 New,单击 M—file,进入编辑区,可编写程序。 例 1:(演示:怎样编写、保存、打开、修改、执行程序?) 请按照规律 1+2=3,2+3=5,3+5=8,5+8=13 写出 30 个数作为一个数 组 a=[1,2,3,5,8,13,……] . 简要说明:(1)保存新文件:File----Save, 文件名必须字母打头; (2)打开旧文件:File----Open----文件名,打开以后就可修改内容; (3)执行:Debug----Run . 2.关系运算,逻辑运算 (1)关系运算:(比较两个数) 共 6 种运算符: = == ~= 小于 大于 小于或等于 大于或等于 等于 不等于
练习 1>2 22 (2=3)k(b 若关系表达式的值是1,则执行语句1 若关系表达式的值是1,则执行语句,再跳到end后面: 若关系表达式的值是0,则不执行语句1,而执行语句2 else end 格式三:if 若关系表达式1的值是1 则执行语句1,再跳到end后面 elseif 若式1假且式2真 则执行语句2,再跳到end后面 elseif 则执行语句3,再跳到end后面 略 end 4.循环结构
练习: 12 22)=? (2=3, d=a==3, e=a4) d=(a>=3)&(b 若 关系表达式 的值是 1,则执行语句 1; 若 关系表达式 的值是 0,则不执行语句 1,而去 end 执行 end 后面的语句。 格式二: if 若 关系表达式的值是 1,则执行语句 1,再跳到 end 后面; 若 关系表达式的值是 0,则不执行语句 1,而执行语句 2 else end 格式三: if 若 关系表达式 1 的值是 1, 则执行语句 1,再跳到 end 后面; elseif 若 式 1 假且式 2 真, 则执行语句 2,再跳到 end 后面; elseif 若 式 1 假、式 2 假且式 3 真, 则执行语句 3,再跳到 end 后面; …… …… …… 略。 end 4.循环结构
格式一: for=:: 说明:对于每个参数值,都重复执行一次语句1 (课堂上,借用前面程序作解释) 例2:请输入、并显示一个20阶方阵,它的元素满足an=1+j-1 解:笨法一:A=1,2,3,4,19,20;2,3,4,…,21; 方法二:编程,程序清单如下: for j=1: 20 for =1: 20 A(1J)=+-1 (循环结构中套循环!) 有时,程序中必需循环结构,但找不道合适的循环参数,或不知道循环 次数,就用下面格式 格式二:Whie <语句 说明:每次执行完语句1,都要倒回去检验关系表达式1,只要关系表达式1的值 是1,就再执行语句1。就这样重复执行直到关系表达式1的值是0为止。 初学者慎用此结构,避免陷入死循环。 死循环例子:a=0; 例3:记E=10-8,求自然数m,使得≥E <a 解: 堂现编)
格式一: for = : : end 说明:对于每个参数值,都重复执行一次语句 1 . (课堂上,借用前面程序作解释) 例 2:请输入、并显示一个 20 阶方阵,它的元素满足 a = i + j −1. ij 解: 笨法一:A=[1,2,3,4,…,19,20;2,3,4,…,21;……] 方法二:编程,程序清单如下: for i=1:20 for j=1:20 A(i,j)=i+j-1; end end A ( 循环结构中套循环!) 有时,程序中必需循环结构,但找不道合适的循环参数,或不知道循环 次数,就用下面格式: 格式二: while end 说明:每次执行完语句 1,都要倒回去检验关系表达式 1,只要关系表达式 1 的值 是 1,就再执行语句 1。就这样重复执行直到关系表达式 1 的值是 0 为止。 初学者慎用此结构,避免陷入死循环。 死循环例子:a=0; while a>=0 a=a+1; end 例 3:记 8 10− = ,求自然数 m,使得 . 2 1 , 2 1 1 m− m 解: (课堂现编)