《MATALAB编程与作图.ppt》由会员分享,可在线阅读,更多相关《MATALAB编程与作图.ppt(63页珍藏版)》请在金锄头文库上搜索。
1、E-mail:Tel:49936260数数 学学 实实 验验MATALABMATALAB编程与作图编程与作图Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.MATALAB控制流控制流MATALAB作图作图M文件文件Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspo
2、se Pty Ltd. 2.1 M文件编写初步文件编写初步 本质:就是将一些指令预先在本质:就是将一些指令预先在M文件中编辑好,然后在需要时将文件中编辑好,然后在需要时将M文件调出来执行即可。文件调出来执行即可。M文件的分类:一类为简单的脚本文件的分类:一类为简单的脚本M文件;一类为函数文件;一类为函数M文件。文件。脚本脚本M文件就是就是一文件就是就是一连串常用指令的串常用指令的组合,可在指令窗口中直接合,可在指令窗口中直接 执行。执行。 函数函数M文件的开文件的开头一行需要有一个函数名称,然后用小括弧包括一行需要有一个函数名称,然后用小括弧包括需要的需要的输入参数;函数名称前可以有等号,在此
3、等号的左方是它的入参数;函数名称前可以有等号,在此等号的左方是它的输出参数出参数Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. MATLAB的内部函数是有限的,有时为了研究某的内部函数是有限的,有时为了研究某一个函数的各种性态,需要为一个函数的各种性态,需要为MATLAB定义新函数,定义新函数,为此必须编写函数文件为此必须编写函数文件. 函数文件是文件名后缀为函数文件是文件名后缀为M的文件,这类文件的的文件,这类文
4、件的第一行必须是一特殊字符第一行必须是一特殊字符function开始开始,格式为:,格式为: function 因变量名因变量名=函数名(自变量名)函数名(自变量名)函数值的获得必须通过函数值的获得必须通过具体的运算实现具体的运算实现,并赋给因变,并赋给因变量量. 1. 函数函数M文件文件Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 单击MATALAB窗口里的窗口里的New-Mfile图标 输入代入代码: fun
5、ction z=fun(x) z=x(1)*2+x(2)*2-2*x(1)*x(2)+6*x(1)-6*x(2) 单击FileSave,把文件保存在把文件保存在Work文件夹下文件夹下 在指令窗口中在指令窗口中输入如下指令即可看到运行入如下指令即可看到运行结果。果。 fun(2,3)Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.例例2 定义函数定义函数 f(x1,x2)=100(x2-x12)2+(1-x1)2fu
6、nction f=fun(x)f=100*(x(2)-x(1)2)2+(1-x(1)21.建立建立M文件:文件:2. 可以直接使用函数可以直接使用函数fun.m例如:计算例如:计算 f(1,2), 只需在只需在Matlab命令窗口键命令窗口键入命令:入命令:fun(1 2)Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.2.2 MATALAB程序设计初步程序设计初步 MATALAB提供了四种控制程序流结构:提供了四种
7、控制程序流结构: for、while循环结构; ifelseend分支结构; switchcase结构; trycatch结构。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 1. for、while循环结构循环结构 1.1 for语句语句 for循环:允许一组命令以固定的和预定的次数循环:允许一组命令以固定的和预定的次数重复重复for 变量变量=array(初始值:增量:终止值)(初始值:增量:终止值) 运算指令
8、(运算指令(commands) end 注注1 增量默认值为增量默认值为1,也可自己定义增量值,增,也可自己定义增量值,增量值可小于量值可小于0。当增量值大于零时,程序将在变量。当增量值大于零时,程序将在变量大于终止值时终止;当增量小于零时,程序将在变大于终止值时终止;当增量小于零时,程序将在变量小于终止值时结束。量小于终止值时结束。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. for n=1:10x(n)=si
9、n(n*pi/10);endx 单循环语句单循环语句:Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. for n=2:6x(n)=2*x(n-1);endxx(1)=1;Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.s=0;for i=
10、1:100000 s=s+1/2i+1/3i; end sEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 多重嵌套循环语句多重嵌套循环语句: for m=1:5 for n=1:5 H(m,n)=m+n endendHEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 A
11、spose Pty Ltd. 1.2 while语句语句 与与forfor循环以固定次数求一组命令相反,循环以固定次数求一组命令相反,whilewhile循环以不循环以不定的次数求一组语句的值定的次数求一组语句的值. . whilewhile 表达式(表达式(expressionexpression) 循环体循环体commandscommands end end 只要在表达式只要在表达式(expression)(expression)里的所有元素为真,里的所有元素为真,就执行就执行whilewhile和和endend语句之间的命令串语句之间的命令串commandscommands,执行完,执行
12、完成后再判断表达式是否为真,若不是则跳出循环体,向下成后再判断表达式是否为真,若不是则跳出循环体,向下继续执行。继续执行。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.s=0; i=0;while s=10000 i=i+1; s=s+i; end iEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copy
13、right 2004-2011 Aspose Pty Ltd. 例例2设银行年利率为设银行年利率为11.25%。将。将10000元钱存入银行,问元钱存入银行,问多长时间会连本带利翻一番?多长时间会连本带利翻一番?money=10000;years=0;while money1if x1 f=x2+1 f=x2+1EndEndif x=1if x1if x1 f=x2+1 f=x2+1else if x=0else if x=0 f=x3 f=x3 else else f=2*x f=2*x end endendendEvaluation only.Created with Aspose.Sli
14、des for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 1.3 trycatch结构结构 try语句用来检测程序代码是否会产生错误,一旦错误发生,语句用来检测程序代码是否会产生错误,一旦错误发生,MATALAB会立即跳入到相应的会立即跳入到相应的catch语句中去。语句中去。try statement1 %命令块命令块statement1被执行。若正确,被执行。若正确,则跳出此结构。则跳出此结构。catch statement2 %当命令块当命令块statement1出现执行错误则出现执行错误则执行
15、命令块则执行命令块则statement2。endEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 输入矩阵输入矩阵A、B的值,执行上面的程序,当的值,执行上面的程序,当A的列数不等于的列数不等于B的行的行数时,程序就会发现这个错误,并打印消息数时,程序就会发现这个错误,并打印消息 *Error cxd1 A*B 。 例如:例如:function cxd1(A,B) try X=A*B catch disp*Error
16、 cxd1 A*B end Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.E-mail:Tel:49936260数数 学学 建建 模模第六章第六章 作作 图图Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.2.3 MATLAB图形绘制图形
17、绘制 2.3.1 二维曲线图形二维曲线图形 Matlab作图是通过描点、连线来实现的,故在画一个曲线作图是通过描点、连线来实现的,故在画一个曲线图形之前,必须先取得该图形上的一系列的点的坐标(即横坐图形之前,必须先取得该图形上的一系列的点的坐标(即横坐标和纵坐标),然后将该点集的坐标传给标和纵坐标),然后将该点集的坐标传给Matlab函数画图函数画图. 基本命令为:基本命令为:plot(X,Y,S) 可以用下面的语句直接绘制出可以用下面的语句直接绘制出多条的曲线多条的曲线: plot(X,Y1,X,Y2,X,Yn)Evaluation only.Created with Aspose.Slid
18、es for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.曲线类型曲线类型曲线颜色曲线颜色标记符号标记符号选项选项 意义意义 选项选项 意义意义 选项选项 意义意义- 实线实线- 虚线虚线: 点线点线-. 点点划线划线none 无线无线b 蓝色蓝色g 绿色绿色m 红紫红紫色色w 白色白色c 蓝蓝绿色绿色k 黑色黑色r 红色红色y 黄色黄色* 星号星号. 点号点号x 叉号叉号v o 圆圈圆圈 pentagram 五角星五角星 square diamond hexagram 六角星六角星 参数参数S的各种选项
19、的各种选项 注注1 上表中的选项可以进行组合。例如:若想绘制红色的点划线上表中的选项可以进行组合。例如:若想绘制红色的点划线且每个转折点上用五角星表示,则选相应适用怎样的组合形式?且每个转折点上用五角星表示,则选相应适用怎样的组合形式? r-.pentagramEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. x=-pi:0.05:pi;y=sin(tan(x)-tan(sin(x) plot(x,y) x=0:0.
20、05:2*pi; y=sin(x); z=cos(x); plot(x,y,b,x,z,r.-)Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 几点说明:几点说明: 1、 若若X,YX,Y都为都为向量向量, ,则分别表示则分别表示点集的横坐标和纵坐标点集的横坐标和纵坐标,例如,例如 plot(X,Y)-plot(X,Y)-画实线,画实线,S S曲线的性质(线性、粗细、颜色等)。曲线的性质(线性、粗细、颜色等)。 2
21、、 若若X X向量向量,Y,Y为矩阵,则将在为矩阵,则将在同一坐标系下绘制同一坐标系下绘制m m条曲线条曲线,每一行,每一行和和X X的关系将绘制出一条曲线。注意,要求的关系将绘制出一条曲线。注意,要求Y Y矩阵的列数应该等于向矩阵的列数应该等于向量量X X的长度。的长度。例:例:x=0:0.1:2;A=sin(pi*x);0.5+0.5*x;plot(x,A) %2条不同的条不同的 曲线曲线 3、 若若X,YX,Y都为都为矩阵矩阵, ,且假设且假设X X和和Y Y的行、列数相同,则将绘制出的行、列数相同,则将绘制出X X矩矩阵每行和阵每行和Y Y矩阵对应行之间矩阵对应行之间关系关系的曲线。的
22、曲线。例:例:A=1 4 2;0 -3 4;0 4 3;B=1 0 0 ;0 1 0;0 0 1;plot(A,B) %对应点的连线对应点的连线Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.符号函数符号函数(显函数、隐函数和参数方程显函数、隐函数和参数方程)画图画图(1) ezplotezplot(x(t),y(t),tmin,tmax) 表示在区间tminttmax绘制参数方程 x=x(t),y=y(t)的函数图
23、ezplot(f(x),a,b) 表示在axb绘制显函数f=f(x)的函数图ezplot(f(x,y),xmin,xmax,ymin,ymax) 表示在区间xminxxmax和 yminyymax绘制隐函数f(x,y)=0的函数图Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.例例1 在0,pi上画y=cosx的图形解解 输入命令 ezplot(sin(x),0,pi)解解 输入命令 ezplot(cos(t)3,s
24、in(t)3,0,2*pi)解解 输入命令ezplot(exp(x)+sin(x*y)=0,-2,0.5,0,2)Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.2.3.2 图形处理图形处理1subplot函数subplot(m,n,p)该命令将当前图形窗口分成mn个绘图区,即每行n个,共m行,区号按行优先编号,且选定第p个区为当前活动区。Evaluation only.Created with Aspose.Sli
25、des for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.【例】【例】 在一个图形窗口中同时绘制正弦、余弦、正在一个图形窗口中同时绘制正弦、余弦、正切曲线切曲线x=linspace(0,pi,60);y=sin(x);z=cos(x);w=tan(x);subplot(1,3,1); plot(x,y); subplot(1,3,2); plot(x,z); subplot(1,3,3); plot(x,w)Evaluation only.Created with Aspose.Slides for .
26、NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.2. 分隔线控制和图形标注分隔线控制和图形标注 MATALAB的默认状态下是不画的默认状态下是不画分隔线分隔线,它的疏密取它的疏密取决于坐标刻度。决于坐标刻度。 调用格式:调用格式: grid on 画出分隔线画出分隔线 grid off 不画分隔线不画分隔线例如:例如:x=1:90; y=sin(x); plot(x,y); grid onEvaluation only.Created with Aspose.Slides for .NET 3.5 Client
27、 Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.3. 图形标注图形标注 1)坐标轴名)坐标轴名label给相应的坐标轴给相应的坐标轴x,y,z加标注,只要调用相应的函数加标注,只要调用相应的函数 xlabel,ylabel,zlabel 以函数以函数xlabel为例为例,其调用格式为其调用格式为:xlabel(text)1)“text”为要添加的标注文本为要添加的标注文本Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyri
28、ght 2004-2011 Aspose Pty Ltd. 2)书写图名)书写图名title (给图形加标题)(给图形加标题)其调用格式为其调用格式为:title(text)注注:title命令要写到命令要写到plot命令之后,否则不起作用;特殊字符串是命令之后,否则不起作用;特殊字符串是区分大小的。区分大小的。实例:实例:t=0:0.2:2*pi; plot(t,sin(t),o,t,cos(t),*); xlabel(x),ylabel(y); title(sin(x)和和cos(x)曲线曲线)Evaluation only.Created with Aspose.Slides for .
29、NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.4. 特殊二维图形特殊二维图形 1)极坐标图)极坐标图其调用格式为其调用格式为:polar(theta,rho,s)例例 试用极坐标绘制函数试用极坐标绘制函数theta=0:0.1:2*pi;rho=5*sin(4*theta/3);polar(theta,rho,rdiamond)Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 200
30、4-2011 Aspose Pty Ltd. 2)散点图)散点图(与与plot类似,但只有数据点)类似,但只有数据点)例例 绘制函数绘制函数y=sinx的的散点图散点图x=1:40;y=sin(x);scatter(x,y)其调用格式为其调用格式为:scatter(x,y,c,s)c是指散点的大小是指散点的大小Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 3)直方图直方图(显示数据的分布规律)显示数据的分布规律)
31、 其调用格式为其调用格式为:hist(y)使用使用10个等距离分布的区间来对向量个等距离分布的区间来对向量y的分布的分布进行统计进行统计,并返回每个区间上含有,并返回每个区间上含有y中元素的个数中元素的个数。 Y=randn(15000,2); hist(Y)Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.4)阶梯图形)阶梯图形函数函数stairs(x,y)可以绘制阶梯图形可以绘制阶梯图形x=-2.5:0.25:2.
32、5;y=exp(-x.*x);stairs(x,y) Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.5)条形图形)条形图形函数bar(x,y)可以绘制条形图形,如下列程序段将绘制条形图形x=-2.5:0.25:2.5;y=exp(-x.*x);bar(x,y) Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0
33、.Copyright 2004-2011 Aspose Pty Ltd.6)填充图形)填充图形fill(x,y,c)函数用来绘制绘制并填充填充二维多边图形,x和y为二维多边形顶点坐标向量。字符 c 规定填充颜色。下述程序段绘制一正方形并以黄色填充:x=0 1 1 0 0;y=0 0 1 1 0;fill(x,y,y)x=0:0.025:2*pi;y=sin(3*x);fill(x,y,k)Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspos
34、e Pty Ltd.Matlab系统可用向量表示颜色,通常称其为颜色向量。基本颜色向量用r g b表示,即RGB颜色组合;以RGB为基本色,通过 r,g,b在01范围内的不同取值可以组合出各种颜色。x=0:0.025:2*pi;y=sin(3*x);fill(x,y,0.3 0.4 .6)Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.4)平面等值线图:)平面等值线图:contour (x,y,z,n) 绘制绘制n个
35、等值线的二维等值线图个等值线的二维等值线图解解:X,Y= meshgrid(-2:0.2:2,-2:0.2:3); Z=X.*exp(-X.2-Y.2); contour(X,Y,Z); Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.2.3.3 三维图形三维图形1. 空间曲线空间曲线2. 空间曲面空间曲面Evaluation only.Created with Aspose.Slides for .NET 3.5
36、Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.plot3(x,y,z,s) 空空 间间 曲曲 线线 1、 一条曲线一条曲线n维向量,分别表示曲线上点集的横坐标、纵坐标、函数值指定颜色、线形等Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. t=0:0.1:2*pi;x=t.3.*sin(3*t).*exp(-t);y=t.3.*cos(3*t).*
37、exp(-t);z=t.2;plot3(x,y,z)Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. plot3(x,y,z)2、多条曲线多条曲线例例 画多条曲线观察函数画多条曲线观察函数Z=(X+Y)2 (这里(这里meshgrid(x,y)的作用的作用是产生一个以向量是产生一个以向量x为行、向量为行、向量y为列的矩阵)为列的矩阵)其中其中x,y,z是都是是都是m*n矩阵,其对应的每一列表示一条曲线矩阵,其对应的每
38、一列表示一条曲线.解解 x=-3:0.1:3;y=1:0.1:5; X,Y=meshgrid(x,y); Z=(X+Y).2; plot3(X,Y,Z)Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 空空 间间 曲曲 面面1、网格图、网格图所谓网格图,是指把相邻的数据点连接起来相成的网状面。所谓网格图,是指把相邻的数据点连接起来相成的网状面。mesh(x,y,z,c)例例 绘绘peaks的网格图的网格图 解:解:x
39、,y,z=peaks; mesh(x,y,z)peaks函数用于生成高斯型分布的数据,其参数为函数用于生成高斯型分布的数据,其参数为生成数据矩阵的维数生成数据矩阵的维数Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.2、曲面图、曲面图所谓曲面图,就是把网格图表面的网格为成的小片区域(补所谓曲面图,就是把网格图表面的网格为成的小片区域(补片)用不同的颜色填充形成的彩色表面。片)用不同的颜色填充形成的彩色表面。 说明:在
40、绘制三维图形之前,应该先调用说明:在绘制三维图形之前,应该先调用meshgrid()函数生成函数生成网格数据网格数据x和和y,这样可以按函数公式用点运算的方式计算出这样可以按函数公式用点运算的方式计算出z矩阵,矩阵,之后就可以用函数进行三维图形绘制。之后就可以用函数进行三维图形绘制。X,Y=meshgrid(x,y);Z=f(x,y);Surf(x,y,z)例例 绘绘peaks的曲面图的曲面图 解:解:x,y,z=peaks; surf(x,y,z)Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.
41、2.0.0.Copyright 2004-2011 Aspose Pty Ltd.例例1 绘绘z=sinx+cosy的曲面图的曲面图解:解:x,y=meshgrid(0:0.5:2*pi,0:0.4:2*pi); z=sin(x)+cos(x); surf(x,y,z)解:解:x,y=meshgrid(0:31);n=2;D0=200; D=sqrt(x-16).2+(y-16).2); z=1./(1+D.(2*n)/D0); surf(x,y,z)Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5
42、.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.在图形上加格栅、图例和标注在图形上加格栅、图例和标注定制坐标定制坐标图形保持图形保持分割窗口分割窗口缩放图形缩放图形改变视角改变视角图形处理动动 画画Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 1、在图形上加格栅、图例和标注、在图形上加格栅、图例和标注(1)grid on: 加格栅在当前图上加格栅在当前图上 grid offgr
43、id off: : 删除格栅删除格栅(2)xlabel(string): 在当前图形的在当前图形的x轴上加图例轴上加图例stringylabel(string): 在当前图形的在当前图形的y轴上加图例轴上加图例string zlabel(string): 在当前图形的在当前图形的z轴上加图例轴上加图例stringtitle(string): 在当前图形的顶端上加图例在当前图形的顶端上加图例stringEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011
44、 Aspose Pty Ltd.例例 绘制绘制z=sinh(x)+cosy的图形,并加注图例的图形,并加注图例“自变量自变量 X”、“自变量自变量Y”、“函数函数z”,”三维示意图三维示意图“ 并加格栅并加格栅.解:解:x,y=meshgrid(0:0.5:2*pi); z=sinh(x)+cos(y); surf(x,y,z); grid on; xlabel(自变量自变量x); ylabel(自变量自变量y); zlabel(函数函数z); title(三维图形示意图三维图形示意图)Evaluation only.Created with Aspose.Slides for .NET 3.
45、5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. (3)gtext(string) 命令命令gtext(string)用鼠标放置标注在现有的图上用鼠标放置标注在现有的图上.运行命令运行命令gtext(string)时,屏幕上出现当前图形,在时,屏幕上出现当前图形,在图形上出现一个交叉的十字,该十字随鼠标的移动移动,图形上出现一个交叉的十字,该十字随鼠标的移动移动,当按下鼠标左键时,该标注当按下鼠标左键时,该标注string放在当前十交叉的位放在当前十交叉的位置置. 例例 在区间在区间0,2*pi画画sin(x),并分别标注
46、,并分别标注“sin(x)” ”cos(x)”.解解 x=linspace(0,2*pi,30); y=sin(x); z=cos(x); plot(x,y,x,z) gtext(sin(x);gtext(cos(x)Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.2、定制坐标、定制坐标axis(xmin xmax ymin ymax zmin zmax)例例 在区间在区间0.005,0.01显示显示sin(1/x)
47、的图形。的图形。解解 x=linspace(0.0001,0.01,1000); y=sin(1./x); plot(x,y) axis(0.005 0.01 1 1)定制图形坐标将坐标轴返回到自动缺省值将坐标轴返回到自动缺省值axis autox、y、z的最大、最小值的最大、最小值Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.3、图形保持、图形保持(1) hold on hold of例例 将将z=sin(x)+
48、cos(y)、)、w=cos(x)+tan(y)画出在同一屏幕画出在同一屏幕上。上。保持当前图形, 以便继续画图到当前图上释放当前图形窗口x,y=meshgrid(0:0.5:2*pi,0:0.4:2*pi);z=sin(x)+cos(x);w=cos(x)+tan(y);surf(x,y,z);hold onsurf(x,y,w)Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.(2) figure(h)例例 区间区
49、间0,2*pi新建两个窗口新建两个窗口分别画出分别画出y=sin(x); z=cos(x)。新建h窗口,激活图形使其可见,并把它置于其它图形之上x=linspace(0,2*pi,100);y=sin(x);z=cos(x);plot(x,y);title(sin(x);pausefigure(2);plot(x,z);title(cos(x);pauseEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.5、缩放图形、
50、缩放图形zoom on 单击鼠标左键,则在当前图形窗口中,以鼠标点中的点为单击鼠标左键,则在当前图形窗口中,以鼠标点中的点为中心的图形放大中心的图形放大2倍;单击鼠标右键,则缩小倍;单击鼠标右键,则缩小2倍倍例例 缩放缩放y=sin(x)的图形的图形zoom off为当前图形打开缩放模式为当前图形打开缩放模式关闭缩放模式关闭缩放模式 x=linspace(0,2*pi,30);y=sin(x);plot(x,y) zoom onEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyr
51、ight 2004-2011 Aspose Pty Ltd.6. 改变视角改变视角view (1)view(a,b) 命令命令view(a,b)改变视角到改变视角到(a,b),a是方位角是方位角,b为仰角。为仰角。缺省视角为(缺省视角为(-37.5,30)。)。例例 画出曲面画出曲面Z=sinx+cosy在不同视角的网格图在不同视角的网格图. view用空间矢量表示的,三个量只关心它们的比例,与数用空间矢量表示的,三个量只关心它们的比例,与数值的大小无关,值的大小无关,x轴轴view(1,0,0),),y轴轴view(0,1,0),),z轴轴view(0,0,1)。)。(2)view(x,y,
52、z) X,Y=meshgrid(0:0.5:2*pi,0:0.3:2*pi); Z=sin(X)+cos(Y); subplot(2,2,1); mesh(X,Y,Z) subplot(2,2,2);mesh(X,Y,Z);view(50,-34) subplot(2,2,3);mesh(X,Y,Z);view(-60,70) subplot(2,2,4);mesh(X,Y,Z);view(0,1,1) Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-20
53、11 Aspose Pty Ltd.特殊的三维图形函数特殊的三维图形函数1、空间等值线图:、空间等值线图: contour 3(x,y,z,n) 其中n表示等值线数。例例 山峰的三维和二维等值线图。 解解 x,y,z=peaks; subplot(1,2,1) contour3(x,y,z,16,s) subplot(1,2,2) contour(x,y,z,16,s)Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.
54、3、三维散点图三维散点图 scatter3(X,Y,Z,S,C) 在向量X,Y和Z指定的位置上显示彩色圆圈. 向量X,Y和Z的大小必须相同.解解 输入命令输入命令:x,y,z=sphere(16);X=x(:)*.5 x(:)*.75 x(:);Y=y(:)*.5 y(:)*.75 y(:);Z=z(:)*.5 z(:)*.75 z(:);S=repmat(1 .75 .5*10,prod(size(x),1);C=repmat(1 2 3,prod(size(x),1);scatter3(X(:),Y(:),Z(:),S(:),C(:),filled),view(-60,60)例例 绘制三维
55、散点图。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.7 动画设计动画设计函函数数m=moviein(n)用用来来建建立立一一个个足足够够大大的的n列的列的帧帧矩阵矩阵m,存放动画中的帧存放动画中的帧。Getframe=m(:,i)函数函数getframe对当前的图象进行快照对当前的图象进行快照movie函数函数movie(m,n)以每秒n幅图形的速度播放由矩阵m的列向量所组成的画面。Evaluation only
56、.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 例例 将曲面将曲面peaks做成动画。做成动画。 解解 x,y,z=peaks(30); surf(x,y,z) axis(-3 3 -3 3 -10 10) m=moviein(15); for i=1:15 view(-37.5+24*(i-1),30) m(:,i)=getframe; end movie(m)Evaluation only.Created with Aspose.Slide
57、s for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.【例例】 播放一个不断变化的眼球程序段。播放一个不断变化的眼球程序段。m=moviein(20); for j=1:20 plot(fft(eye(j+10) m(:,j)=getframe;endmovie(m,10)Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.例例3 设置一水波动画。设置一水波动画。m=moviein(20);x=-1:0.05:1;for j=1:20 y=sqrt(j.2-x.2) plot(x,y) hold on z=-sqrt(j.2-x.2) plot(x,z) m(:,j)=getframe;endmovie(m)Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.