您好,欢迎访问三七文档
实验二MATLAB编程与作图13090114廖红利一、实验目的1.学会程序设计2.学会作图3.了解在线帮助和文件管理二、实验内容1.程序设计1)控制流第一章我们用的指令都是顺序结构的,对于复杂的计算,需要循环和分支等复杂的程序结构,MATLAB控制流语法都是以end结尾。常用控制流见如下表:MATLAB常用控制流类型语法解释循环语句For循环变量=数组,指令组;EndWhile条件式,指令组End对于循环变量依次取数组中的值,循环执行指令组直到循环变量遍历数组,数组最常用的形式是初值:增量:终值。当条件式满足,循环执行指令组直到条件式不满足。使用while语句要注意避免出现死循环。分支语句If条件式1,指令组1;Elseif条件式2,指令组2;……;Else指令组k;End如果条件式1满足,则执行指令组1,且结束该语句;否则检查条件式2,若满足,执行指令组2,且结束该语句;……若所有条件式都不满足,则执行指令组k,并且结束该语句,最常用的格式是:If条件式指令组End分支语句Switch分支变量,Case值1,指令组1,Case值2,指令组2,……,Otherwise指令组k;若分支变量的取值1,则执行指令组1,且结束该语句;若分支变量的取值2,则执行指令组2,且结束该语句;……若分支变量不取所列出的值,则执行指令组k.End中断语句Pause暂停执行,直到击键盘。Pause(n)为暂停n秒后再继续。中断语句break中断执行,用在循环语句内表示跳出循环。中断语句return中段执行该程序,中断语句Error(字符串)提示错误并显示字符串说明。例如:计算100121nns2)M脚本文件复杂程序结构在指令窗口调试保存都不方便所以进行复杂的运算大都使用程序文件。MATLAB中最常见的程序文件是M文件。MATLAB大部分内部函数都是M文件,用户编制程序也通常用M文件。M文件可分为两类:M脚本文件和M函数文件。将多条MATLAB语句写在编辑器中,并以扩展名m的文件保存在适当的文件夹中,就得到一个M脚本文件。例如,将例2.1的几条语句写在编辑器中,保存为eg2_1(MATLAB会自动加扩展名m),然后在指令窗口执行.3)函数文件M脚本文件没有参数传递功能,当我们需要修改程序中的某些变量值,必须修改M文件。利用M函数文件可以进行参数传递,所以M函数文件用得更加广泛。M函数文件以function开头,格式为function[输出变量]=函数名称(输入变量)语句;M函数必须给予输出参数(output_args)和输入参数(input_args)。一个M函数可以有多个输出参数或多个输入参数。编写M函数不可以写在指令窗口,必须在编辑器窗口中编辑。M函数与M脚本还有一个深层次的区别:M函数中的变量为局部变量,在Workspace是找不到的。执行M函数一般要在指令窗口以该函数的磁盘文件主名调用,并给输入参数赋值。M函数也可以被M脚本文件或其他M文件调用。注意:在MATLAB中,使用M函数是以该函数的磁盘文件主名调用,而不是文件中的函数名称,为了增强程序可读性,建议两者同名.4)函数句柄、Inline函数和匿名函数M函数除了直接用其函数名调用之外,也可以作为一个参数那样调用。调用时使用所谓函数句柄(handle)方式.比较简单的函数表达式可以不用写成外部M函数,而是用更简捷的inline函数或匿名函数方式出现在指令行中,格式为:fun=inline(‘expr’,arg1,arg2,…)fun=@(arg1,arg2,...)expr,这里expr为函数表达式,arg1,arg2,…为自变量名字符串利用MATLAB数组运算符,可以将前面的程序简单写成Inline函数,而不必写成外部MATLAB函数.MATLAB将Inline函数弃用,有匿名函数代替。匿名函数不仅简明,而且可以直接使用.5)其他1)注释为了增强程序的可读性,常常使用注释语句。用%开头,对本行后面字符起作用,不参与运算,只起说明作用。M文件开头一般应有一段注释,说明文件的功能和使用方法,这部分注释使用help可以看到。另外,注释符%也常用于程序调试,把暂不使用的注释起来,使得它不参与运算。2)对话input在交互式执行程序中用于提示键盘输入,disp用于屏幕显示.列:编写一个脚本文件,使对键盘提示输入的向量求得元素总和。使用注释语句解释用法。3)全程变量与局部变量M函数中所有变量为局部变量,不进入工作空间,脚本文件中所有变量执行后进入工作空间,即全程变量。M函数变量值传递主要通过其输入输出变量,但也可以用global定义全程变量,它的意义与工作空间变量不同,只对有定义的环境起作用。4)nargin,nargout和varargin在M函数内,nargin表示该函数的输入变量个数,nargout表示该函数的输出变量个数,而varargin表示可变输入输出变量个数。利用这些格式可以编写更灵活的程序。5)子函数和嵌套函数M函数中允许使用子函数和嵌套函数。M函数中第一个function为主函数,其他function为子函数。子函数只能被同一文件的主函数和其他子函数调用,不能被外部函数调用。在一个函数体内部还可以定义嵌套函数,这时每个函数体要用end标志结束.列:下面我们个编辑了一个计算baxy的子函数和嵌套函数的程序,并用到nargin和golbal。当然,这个程序完全没必要编的这么复杂,这里纯粹是出于解释用途。6)提高速度MATLAB软件执行循环语句时速度较慢,好的M程序文件应尽量使用数组运算和内部函数,少使用循环语句,以提高运算速度。改变数组尺寸会影响速度,采取一些预分配方法可提高运算速度。另外,减少运行过程中不必要的结果显示也可提高速度列:编写一个M函数,对于任意输入的向量x可以计算下列分段函数值构成的向量。)(xf.1,23,11,1,1,2xxxxx2.作图常用的作图指令主题词意义主题词意义PlotFplotPlot3MeshgridMeshSurfContourContour3TitleXlabelylabel基本二维图一元函数图空间曲线网络数据生成网面图曲面图等高线图3维等高线图标题X轴说明Y轴说明ZlabelClabelGridHoldAxisViewSubplotFigureClfClosendgridZ轴说明等高线高度标志格栅图形保持定制坐标轴改变视点子图新图形窗口清除图形关闭图形窗口N维网格数据生成1)曲线图plot(x,y)作出数据(x(i),y(i))为结点的折线图,其中x,y为同长度的向量plot(x1,y1,x2,y2,…)同时作多条折线,分别由向量对(x1,y1),(x2,y2),…构成fplot(fun,[a,b])作出函数fun在区间[a,b]上的函数图plot3(x,y,z)空间曲线图,其中x,y,z为同长度的向量图形元素设定颜色标记线型B蓝(默认)G绿R红C青M洋红Y黄K黑W白无标题(默认).点。圈叉+十字*星S方块D菱形V下三角形上三角形左三角形右三角形P五角形H六角形—实线(默认):虚线—.点划线——划线列:两个一元函数13xxy和)5sin(2.0xxy在区间-1X2的复合图。2)曲面图[x,y]=meshgrid(xa,ya)当xa,ya分别为m维和n维行向量,得到x和y均为n行m列矩阵meshgrid常用于生成X-Y平面上的网格数据,也可用于三维网格数据生成[x,y]=ndgrid(xa,ya)与meshgrid类似,但得到的x和y均为m行n列矩阵。ndgrid还可用于3维以上的网格mesh(x,y,z)绘制网页面,是最基本的曲面图形指令,其中x,y,z是同阶矩阵,表示曲面三维数据surf(x,y,z)绘制曲面图,与mesh用法类似contour(x,y,z)绘制等高线图,与mesh用法类似contour3(x,y,z)绘制三维等高线图,与mesh用法类似列:二元函数图)exp(22yxxz。3)图形说明和定制title(‘字符串’)图形标题说明xlabel,ylabel,zlabel用法类似于title,分别说明坐标轴x,y,ztext(x,y,’字符串’)在2维图形指定位置(x,y)处加文本字符串text(x,y,z,’字符串’)在3维图形指定位置(x,y,z)处加文本字符串gridon/off显示/不显示格栅boxon/off使用/不使用坐标框holdon/off保留/释放现有图形axisoff/on不显示/显示坐标轴axis([a,b,c,d])定制2维坐标轴范围axb,cydaxis([a,b,c,d,e,f])定制3维坐标轴范围axb,cyd,ezffigure开一个新图形窗口close关闭现有图形窗口subplot(m,n,k)将图形窗口分为m*n个子图,并指向第k幅图legend(str1,str2,…)图例,字符串str1,str2,…依次为各图形对象说明列:绘制由参变量函数表示的空间曲线.200,,2sin,2cos2.02.0ttzteytextt4)图形编辑MATLAB图形窗口、坐标轴、图形元素等往往是系统自动选定的,用图形指令可以来进行设置,但用法较复杂。MATLAB的图形窗口提供了菜单和工具栏,可以用它们直观地改变图形设置。图形窗口提供了菜单和工具栏.执行步骤:(1)打开图形编辑器(2)调整视角(3)设置坐标轴(4)设置曲面图元(5)标记最高点坐标(6)加色彩棒和图例(7)加箭头和文字(8)退出编辑状态图片编辑界面4.在线帮助和文件管理1)在线帮助help显示MATLAB主题文件夹,包括所有已安装的工具箱help子文件名显示子文件夹中所有MATLAB系统指令及函数help指令或函数显示该指令或函数的说明部分doc启动MATLAB的超文本帮助文件doc指令或函数显示该指令或函数的超文本帮助docsearch关键字超文本搜索与该关键字有关的内容lookfor关键字显示与该关键字有关的指令和函数typeM文件主名显示M文件程序代码whichM文件主名显示指定的MATLAB文件的路径demo演示MATLAB功能MATLAB主要提供了两种形式的联机帮助系统:纯文本帮助和超文本帮助。纯文本帮助使用help指令,比较简洁,直接显示在CommandWindow。超文本帮助使用doc指令,链接检索,介绍更详细,并提供了较多实例。help%显示MATLAB及其工具箱的主题文件夹,其中有graph3dhelpgraph3d%显示三维图形主题文件夹内所有M指令和函数,其中%有meshhelpmesh%显示M函数mesh的用法说明(即其M文件的注释部分),%最后列出了一些相关的函数以及mesh的超文本帮助docmesh%启动M函数超文本帮助,提供较多例子whichmesh%显示M函数mesh所在的文件夹typemesh%显示函数mesh的M文件程序代码lookforsurface%显示MATLAB搜索路径中凡是第一行注释含%surface的M指令和函数,其中有函数meshDocsearchsurface%比lookfor搜索出更多内容例2.8利用线性规划的关键字programming找寻求解线性规划的MATLAB函数,并查看其用法和M文件程序代码。解;先用lookforprogramming可以找到有关programming的很多指令其中有一个linprog是线性规划(Linearprogramming)。再用helplinprog可以得到使用linprog解线性规划问题用法的详细说明。进一步,使用doclinprog看到详细的算法介绍和有关实例。利用typelinprog可以看到linprog的M文件程序代码.2)文件和文件夹管理MATLAB文件有M,Mat,Mex等。其中M文件是最重要的,MATLAB绝大多数内部指令和函数是M文件,用户自编的程序一般是M文件。MAT
本文标题:数学实验2
链接地址:https://www.777doc.com/doc-2331233 .html