收藏 分销(赏)

函数文件和脚本文件.ppt

上传人:胜**** 文档编号:682104 上传时间:2024-01-31 格式:PPT 页数:46 大小:1.14MB
下载 相关 举报
函数文件和脚本文件.ppt_第1页
第1页 / 共46页
函数文件和脚本文件.ppt_第2页
第2页 / 共46页
函数文件和脚本文件.ppt_第3页
第3页 / 共46页
函数文件和脚本文件.ppt_第4页
第4页 / 共46页
函数文件和脚本文件.ppt_第5页
第5页 / 共46页
点击查看更多>>
资源描述

1、第五章脚本文件和函数文件脚本文件和函数文件本节内容本节内容 掌握脚本文件和函数文件的区别掌握函数文件的编写和调用掌握M文件的调试方法掌握文件的打开和关闭1 M1 M文件文件-脚本文件脚本文件 脚本文件只是一串按照用户意图排列而成脚本文件只是一串按照用户意图排列而成的的MATLAB指令集合,即只是简单命令的叠指令集合,即只是简单命令的叠加。它没有输入参数,也没有输出参数。加。它没有输入参数,也没有输出参数。它运行后产生的变量都是全局变量,均驻它运行后产生的变量都是全局变量,均驻留在留在workspace中。中。只要用户不使用指令只要用户不使用指令clear加以清除,或加以清除,或MATLAB指令

2、窗不关闭,这些指令窗不关闭,这些变量将一直保存在基本工作空间中。变量将一直保存在基本工作空间中。例例:计算小于任意自然数计算小于任意自然数n的的fibonnaci数。数。运行文件运行文件(F5/Debug|Run(F5/Debug|Run)函数文件函数文件 函数文件是一种特殊类型的运行在自己独立的工作空间的M文件,通过输入形参表接收数据,通过输出形参返回结果到调用文件。function function 输出形参表输出形参表=fname(=fname(输入形参表输入形参表)%H1%H1注释行注释行%其他注释行其他注释行 (可执行代码)(可执行代码)(return)(return)以functi

3、on开头的一行为引导行,是函数定义语句,表示该M文件是一个函数文件。帮助文本的首行(H1行):用于help帮助使用和lookfor搜索帮助文本:指H1行之后到函数体之前的注释行。包括函数的意义、各参数的意义、调用格式以及程序的作者、日期等。函数体是函数的执行代码,是文件主要部分。注释:以%开头,可出现在程序中任意一行,用绿色表示。编译时会被忽略,不会影响程序运行速度。例:编写函数计算两点之间的距离。例:编写函数计算两点之间的距离。l当当函函数数的的输输出出参参数数多多于于一一个个时时,应应该该用用方方括括号号括起来,并以括起来,并以逗号隔开逗号隔开;l传传递递给给函函数数的的变变量量不不必必与

4、与函函数数定定义义行行中中的的参参数数同名;同名;l函数和文件的命名规则与变量命名规则相同;函数和文件的命名规则与变量命名规则相同;l若若保保存存的的文文件件名名与与函函数数名名不不同同,则则在在调调用用时时必必须使用文件名须使用文件名。l建议:函数名与文件名应一致建议:函数名与文件名应一致(系统默认系统默认)注意事项注意事项l函函数数文文件件运运行行时时,MATLABMATLAB会会专专门门为为其其开开辟辟一一临临时时工工作作空空间间(函函数数空空间间),所所有有变变量量都都存存放放于于此此。文文件件运运行行完完毕毕后后,该该临临时时空空间间以以及及所有中间变量就立即被清除;所有中间变量就立

5、即被清除;l函函数数空空间间随随函函数数文文件件的的调调用用而而产产生生,随随调调用用而结束;而结束;l函数文件的变量除特别声明外均是局部变量函数文件的变量除特别声明外均是局部变量函数运行函数运行-调用调用 注:1)函数调用时,先将实参传递给相应的形参,实现参数传递,然后再执行函数的功能。2)各实参出现的顺序、个数应与形参定义的顺序和个数一致,否则会出错。函数文件运行不能选中菜单Run,而是调用。输出实参表输出实参表 函数名(输入实参表)函数名(输入实参表)n 函数调用的一般格式脚本文件和函数文件的区别脚本文件和函数文件的区别相同:扩展名都是.m,可用文件编辑器编写不同:1)脚本文件无输入、输

6、出参数;2)函数文件与指令空间只能通过输入参数和输出参数通信,中间变量不出现;3)脚本文件产生的变量都是全局变量,存放在基本工作空间中;而函数文件产生的中间变量存放在临时工作空间中,它随函数的调用结束而删除;4)运行方式不同。1)以以ffib.m为名存盘为名存盘2)MATLAB命令窗口输入命令:命令窗口输入命令:ffib(1000)即可求小于即可求小于1000的的Fibonacci数。数。例:编写函数求小于任意自然数n的fibonnaci数。递归调用:函数调用其本身递归调用:函数调用其本身function f=factor(n)if n提示符),用户可以查看工作区中的变量,也可改变变量的值。当

7、输入return指令时返回程序,继续运行。调试方法n 程序的暂停:采用pause函数可以暂停程序,直到用户按任一键程序才继续执行。若要强行中止程序的运行,可用ctrl+c。n return:结束所在函数的执行,把控制权转至主调函数或指令窗。否则,只有待整个被调函数执行完后,才会转出。n keyboard:将控制权交给键盘,用于程序的调试及在程序运行中修改变量。调试一个单独的函数时,可将函数改写为脚本文件,此时可直接对输入参数赋值,然后以脚本方式运行该M文件;使用调试器使用调试器 可以准确地找到运行错误。通过设置断点可使程序运行到某行暂停,查看和修改工作空间中的变量;也可以逐行运行程序,对执行流

8、程进行完全监控。调试器调试器DebugDebug 它可帮助用户正确地找到程序出错的位置,其常和端点breakpoint配合使用。即:通过设置断点使程序运行到某行暂停,此即:通过设置断点使程序运行到某行暂停,此即:通过设置断点使程序运行到某行暂停,此即:通过设置断点使程序运行到某行暂停,此时可通过观察程序变量、表达式、调试输出信时可通过观察程序变量、表达式、调试输出信时可通过观察程序变量、表达式、调试输出信时可通过观察程序变量、表达式、调试输出信息等来了解程序的运行情况;也可以逐行运行息等来了解程序的运行情况;也可以逐行运行息等来了解程序的运行情况;也可以逐行运行息等来了解程序的运行情况;也可以

9、逐行运行程序,对执行流程进行完全监控。程序,对执行流程进行完全监控。程序,对执行流程进行完全监控。程序,对执行流程进行完全监控。n 调试手段有:设置断点、跟踪和观察变量DebugDebug菜单项菜单项lStepStep(F10F10):单单步步执执行行语语句句,对对于于函函数数调调用用可可将将此此函数一次执行完毕函数一次执行完毕lStep Step InIn(F11F11):单单步步执执行行语语句句,遇遇到到函函数数时时则则进进入入函数体内单步执行函数体内单步执行lStep Step OutOut(shift+F11shift+F11):从从函函数数体体内内运运行行到到函函数数体体外外,即即从

10、从当当前前位位置置运运行行到到调调用用函函数数语语句句的的下下一一条条语语句句lRunRun(F5F5):从从头头开开始始执执行行程程序序,直直到到遇遇到到一一个端点或程序结束;个端点或程序结束;lRun to CursorRun to Cursor:从当前位置运行到光标处;:从当前位置运行到光标处;lExit Exit Debug Debug ModeMode:退退出出调调试试工工具具,同同时时结结束束调试过程和程序运行过程调试过程和程序运行过程。lSet/Clear Set/Clear BreakpointsBreakpoints(F12F12):设设置置或或清清除除光标所在行的断点光标所

11、在行的断点lClear all BreakpointsClear all Breakpoints:清除所有断点:清除所有断点调试方法步骤调试方法步骤n 设置断点:选中要设置的语句,用快捷键F12或用工具条上的大红点或点击菜单set breakpoint注:断点设置后,在窗口左边框上的大红圆点注:断点设置后,在窗口左边框上的大红圆点表示,非常醒目。表示,非常醒目。设置断点后,点击菜单Debug|Run,程序便处在调试状态。而后程序会自动在断点处暂停,此时左边框上的对应位置会出现一个绿色箭头指示被中断的语句。单步执行各语句:此时可查看各变量的内容,以判断程序流程是否正确。查看变量内容:可以点击工作

12、空间的变量,或查看变量内容:可以点击工作空间的变量,或查看变量内容:可以点击工作空间的变量,或查看变量内容:可以点击工作空间的变量,或者用鼠标指向变量名,变量的值将自动显示。者用鼠标指向变量名,变量的值将自动显示。者用鼠标指向变量名,变量的值将自动显示。者用鼠标指向变量名,变量的值将自动显示。n退出调试工具:选中菜单exit debug moden清除断点:与设置方法相同。因因collatz.m程序需要输入程序需要输入参数参数n,故查看输出结果不,故查看输出结果不能用能用Run命令,而需在指命令,而需在指令窗中输入令窗中输入collatz(5)6.5 6.5 程序的优化程序的优化n 避免使用循

13、环(向量化编程)要尽可能地使用向量或矩阵编程,而不是像在其他语言中对向量或矩阵的元素编程。这样,不仅可以使程序较短,而且能大大提高运行速度。要求:编程者须熟悉数组运算和要求:编程者须熟悉数组运算和MATLABMATLAB的指令的指令n 数组的预定义 数组空间预配置可提高运行速度(对高阶矩阵的影响尤为明显)以及内存的利用率,否则数组多次扩维会增加内存的碎片。clear vr=0.89,1.20,3.09,4.27,3.62,7.71,8.99,7.92,9.70,10.41;ir=0.028,0.040,0.100,0.145,0.118,0.258,0.299,0.257,0.308,0.34

14、5;L=length(vr)%计算数组的长度计算数组的长度 for k=1:L r(k)=vr(k)/ir(k);%根据各测量点计算电阻根据各测量点计算电阻 end sr=0;for k=1:L sr=sr+r(k);%计算所有电阻之和计算所有电阻之和 end rm=sr/L 计算电阻平均值计算电阻平均值例:根据测得的一组电压、电流值计算平均电阻值。例:根据测得的一组电压、电流值计算平均电阻值。1.1.非向量化编程非向量化编程 clear vr=0.89,1.20,3.09,4.27,3.62,7.71,8.99,7.92,9.70,10.41;ir=0.028,0.040,0.100,0.145,0.118,0.258,0.299,0.257,0.308,0.345;r=vr./ir%r=vr./ir%计算各测量点上的电阻值计算各测量点上的电阻值 rm=mean(r)rm=mean(r)计算电阻平均值计算电阻平均值2.2.向量化编程向量化编程本节要求本节要求1.掌握脚本文件和函数文件的区别2.掌握函数文件的定义和运行3.熟练使用debug调试器4.掌握文件的打开、关闭和读写操作5.逐渐具有向量化编程的思想

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 通信科技 > 计算机应用

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服