




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二讲MATLAB的
2.1脚本文件和函数文件2.2函数调用和参数传递2.3MATLAB的程序结构和控制流2.4M文件的调试程序设计12.1脚本文件和函数文件2.1.1M脚本文件对于一些比较简单的问题,在指令窗中直接输入指令计算。对于复杂计算,采用脚本文件(Scriptfile)最为合适。MATLAB只是按文件所写的指令执行。M脚本文件的特点是:脚本文件的构成比较简单,只是一串按用户意图排列而成的(包括控制流向指令在内的)MATLAB指令集合。脚本文件运行后,所产生的所有变量都驻留在MATLAB基本工作空间(Baseworkspace)中。只要用户不使用清除指令(clear),MATLAB指令窗不关闭,这些变量将一直保存在基本工作空间中。M文件有两种形式:脚本文件(ScriptFile)和函数文件(FunctionFile)。这两种文件的扩展名,均为“.m”。22.1脚本文件和函数文件(续1)2.1.2M函数文件与脚本文件不同,函数文件犹如一个“黑箱”,把一些数据送进并经加工处理,再把结果送出来。MATLAB提供的函数指令大部分都是由函数文件定义的。M函数文件的特点是:从形式上看,与脚本文件不同,函数文件的笫一行总是以“function”引导的“函数申明行”。从运行上看,与脚本文件运行不同,每当函数文件运行,MATLAB就会专门为它开辟一个临时工作空间,称为函数工作空间(Functionworkspace)
。当执行文件最后一条指令时,就结束该函数文件的运行,同时该临时函数空间及其所有的中间变量就立即被清除。MATLAB允许使用比“标称数目”较少的输入输出宗量,实现对函数的调用。32.1脚本文件和函数文件(续2)2.1.3M文件的一般结构由于从结构上看,脚本文件只是比函数文件少一个“函数申明行”,所以只须描述清楚函数文件的结构。典型M函数文件的结构如下:函数申明行:位于函数文件的首行,以关键字functio
开头,函数名以及函数的输入输出宗量都在这一行被定义。笫一注释行:紧随函数申明行之后以%开头笫一注释行。该行供lookfor关键词查询和help在线帮助使用。在线帮助文本区:笫一注释行及其之后的连续以%开头的所有注释行构成整个在线帮助文本。编写和修改记录:与在线帮助文本区相隔一个“空”行,也以%开头,标志编写及修改该M文件的作者和日期等。函数体:为清晰起见,它与前面的注释以“空”行相隔。例2_2_1:M函数文件示例。42.2函数调用和参数传递(续)2.2.3参数传递MATLAB在函数调用上有一个与众不同之处:函数所传递的参数具有可调性。传递参数数目的可调性来源于如下两个MATLAB永久变量:函数体内的nargin
给出调用该函数时的输入参数数目。函数体内的nargout
给出调用该函数时的输出参数数目。只要在函数文件中包括这两个变量,就可以知道该函数文件调用时的输入参数和输出参数数目。值得注意:nargin、nargout
本身都是函数,不是变量,所以用户不能赋值,也不能显示。“变长度”输入输出宗量:varargin
、
varrgout。具有接受“任意多输入”、返回“任意多输出”的能力。跨空间变量传递:evalin。(参考:circle.m,am1.m)62.3MATLAB的程序结构和控制流2.3.1程序结构循环结构:MATLAB提供两种循环方式。顺序结构分支结构:if—else—end。for—end循环和while---end循环。2.3.2程序流控制常用指令:return,echo,input,pause,keyboard,break。switch---case结构。try---catch结构。警示指令:error,warning。72.3MATLAB的程序结构和控制流(续)2.3.3图形用户界面(GUI)编程现代的主流应用程序已经从命令行的交互方式转变为以图形界面为主的交互方式,这主要是由于它给用户带来了操作和控制的方便与灵活性。(面向对象编程)MATLAB能够以比较简单的方式实现一系列的图形界面功能。通过对控件、菜单属性的设置和
Callback的编写,就能够满足大多数用户的需求。
控件的Callback属性:Callback属性的取值是字符串,可以是某个M文件名或一小段MATLAB语句。当用户激活控件对象(例如:在控件对象图标上单击鼠标左键)时,应用程序就运行Callback属性定义的子程序。
菜单的Callback属性:Callback属性的取值是字符串,可以是某个M文件名或一小段MATLAB语句。当用户激活菜单对象时,若没有子菜单就运行Callback属性定义的子程序。若有,先运行Callback属性定义的子程序,再显示子菜单。82.4M文件的调试编写M文件时,错误(Bug)在所难免。错误有两种:语法(Syntax)错误和运行(Run-time)错误。语法错误是指变量名、函数名的误写,标点符号的缺、漏等。对于这类错误,通常能在运行时发现,终止执行,并给出相应的错误原因以及所在行号。运行错误是算法本身引起的,发生在运行过程中。相对语法错误而言,运行错误较难处理。尤其是M函数文件,它一旦运行停止,其中间变量被删除一空,错误很难查找。有两种调试方法:直接调试法和工具调试法。92.4M文件的调试(续1)直接调试法:可以用下面方法发现某些运行错误。在M文件中,将某些语句后面的分号去掉,迫使M文件输出一些中间计算结果,以便发现可能的错误。在适当的位置,添加显示某些关键变量值的语句(包括使用disp
在内)。利用echo指令,使运行时在屏幕上逐行显示文件内容。echoon能显示M脚本文件;echoFunNsmeon能显示名为FunNsme
的M函数文件。在原M脚本或函数文件的适当位置,增添指令keyboard。
keyboard语句可以设置程序的断点。通过将原M函数文件的函数申明行注释掉,可使一个中间变量难于观察的M函数文件变为一个所有变量都保留在基本工作空间中的M脚本文件。102.4M文件的调试(续2)GUI界面调试法:MATLAB5.x版提供了一个基于GUI界面的调试。使用它,可以对函数进行调试。Debug菜单的使用:Continue:恢复程序运行至结束或另一个断点。SingleStep:单步执行函数。StepIn:深入下层局部工作区。QuitDebugging:退出调试状态。Set/ClearBreakpoint:设置/清除光标处的断点。ClearAllBreakpoints:清除程序中的所有断点。StopifError:运行至出错或结束。StopifWarning:运行至警告消息或结束。StopifNaNofInf:运行至运算结果出现NaN或Inf。
11M脚本文件入门通过M脚本文件,画出下列分段函数所表示的曲面。
(s_file.m)12M脚本文件入门(续)%s_file.m Thisismyfirstexample.a=2;b=2; clf;x=-a:0.2:a;y=-b:0.2:b;fori=1:length(y)forj=1:length(x)ifx(j)+y(i)>1z(i,j)=0.5457*exp(-0.75*y(i)^2-3.75*x(j)^2-1.5*x(j));elseifx(j)+y(i)<=-1z(i,j)=0.5457*exp(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 原木批发采购合同范例范例
- 员工认购合同范例
- 合作开店股合同范本
- 打造绿色家居新风尚
- 住房水电维修合同范本
- 商用炉具改造合同范本
- 吊灯安装租房合同范本
- 创新驱动的畜牧业
- 初中新生家校共育指南
- 成长的足迹模板
- 四年级数学思维训练50道及答案
- 20以内的加法口算练习题4000题 284
- 人教版道德与法治九年级下册《2.1 推动和平与发展 》说课稿
- 08J907 洁净厂房建筑构造
- 高中化学作业分层设计策略
- 数控车床常用数控刀具课件
- DL-T5002-2021地区电网调度自动化设计规程
- 经典导读与欣赏-知到答案、智慧树答案
- DB32T3610.3-2019道路运输车辆主动安全智能防控系统技术规范第3部分:通讯协议
- 信息资源建设-习题集(含答案)
- 2024年湖南铁道职业技术学院单招职业技能测试题库及答案解析
评论
0/150
提交评论