




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,1,第五章,脚本文件和函数文件,.,2,本节内容,掌握脚本文件和函数文件的区别掌握函数文件的编写和调用掌握M文件的调试方法掌握文件的打开和关闭,.,3,1M文件-脚本文件,脚本文件只是一串按照用户意图排列而成的MATLAB指令集合,即只是简单命令的叠加。它没有输入参数,也没有输出参数。它运行后产生的变量都是全局变量,均驻留在workspace中。只要用户不使用指令clear加以清除,或MATLAB指令窗不关闭,这些变量将一直保存在基本工作空间中。,.,4,例:计算小于任意自然数n的fibonnaci数。,运行文件(F5/Debug|Run),.,5,函数文件,函数文件是一种特殊类型的运行在自己独立的工作空间的M文件,通过输入形参表接收数据,通过输出形参返回结果到调用文件。,function输出形参表=fname(输入形参表)%H1注释行%其他注释行(可执行代码)(return),.,6,以function开头的一行为引导行,是函数定义语句,表示该M文件是一个函数文件。帮助文本的首行(H1行):用于help帮助使用和lookfor搜索帮助文本:指H1行之后到函数体之前的注释行。包括函数的意义、各参数的意义、调用格式以及程序的作者、日期等。函数体是函数的执行代码,是文件主要部分。注释:以%开头,可出现在程序中任意一行,用绿色表示。编译时会被忽略,不会影响程序运行速度。,.,7,例:编写函数计算两点之间的距离。,.,8,当函数的输出参数多于一个时,应该用方括号括起来,并以逗号隔开;传递给函数的变量不必与函数定义行中的参数同名;函数和文件的命名规则与变量命名规则相同;若保存的文件名与函数名不同,则在调用时必须使用文件名。建议:函数名与文件名应一致(系统默认),注意事项,.,9,函数文件运行时,MATLAB会专门为其开辟一临时工作空间(函数空间),所有变量都存放于此。文件运行完毕后,该临时空间以及所有中间变量就立即被清除;函数空间随函数文件的调用而产生,随调用而结束;函数文件的变量除特别声明外均是局部变量,.,10,函数运行-调用,注:1)函数调用时,先将实参传递给相应的形参,实现参数传递,然后再执行函数的功能。2)各实参出现的顺序、个数应与形参定义的顺序和个数一致,否则会出错。,函数文件运行不能选中菜单Run,而是调用。,输出实参表函数名(输入实参表),函数调用的一般格式,.,11,.,12,脚本文件和函数文件的区别,相同:扩展名都是.m,可用文件编辑器编写不同:1)脚本文件无输入、输出参数;2)函数文件与指令空间只能通过输入参数和输出参数通信,中间变量不出现;3)脚本文件产生的变量都是全局变量,存放在基本工作空间中;而函数文件产生的中间变量存放在临时工作空间中,它随函数的调用结束而删除;4)运行方式不同。,.,13,1)以ffib.m为名存盘2)MATLAB命令窗口输入命令:ffib(1000)即可求小于1000的Fibonacci数。,例:编写函数求小于任意自然数n的fibonnaci数。,.,14,递归调用:函数调用其本身,functionf=factor(n)ifn提示符),用户可以查看工作区中的变量,也可改变变量的值。当输入return指令时返回程序,继续运行。,调试方法,.,35,程序的暂停:采用pause函数可以暂停程序,直到用户按任一键程序才继续执行。若要强行中止程序的运行,可用ctrl+c。,return:结束所在函数的执行,把控制权转至主调函数或指令窗。否则,只有待整个被调函数执行完后,才会转出。,keyboard:将控制权交给键盘,用于程序的调试及在程序运行中修改变量。,.,36,调试一个单独的函数时,可将函数改写为脚本文件,此时可直接对输入参数赋值,然后以脚本方式运行该M文件;使用调试器可以准确地找到运行错误。通过设置断点可使程序运行到某行暂停,查看和修改工作空间中的变量;也可以逐行运行程序,对执行流程进行完全监控。,.,37,调试器Debug,它可帮助用户正确地找到程序出错的位置,其常和端点breakpoint配合使用。,即:通过设置断点使程序运行到某行暂停,此时可通过观察程序变量、表达式、调试输出信息等来了解程序的运行情况;也可以逐行运行程序,对执行流程进行完全监控。,调试手段有:设置断点、跟踪和观察变量,.,38,Debug菜单项,Step(F10):单步执行语句,对于函数调用可将此函数一次执行完毕StepIn(F11):单步执行语句,遇到函数时则进入函数体内单步执行StepOut(shift+F11):从函数体内运行到函数体外,即从当前位置运行到调用函数语句的下一条语句,.,39,Run(F5):从头开始执行程序,直到遇到一个端点或程序结束;RuntoCursor:从当前位置运行到光标处;ExitDebugMode:退出调试工具,同时结束调试过程和程序运行过程。Set/ClearBreakpoints(F12):设置或清除光标所在行的断点ClearallBreakpoints:清除所有断点,.,40,调试方法步骤,设置断点:选中要设置的语句,用快捷键F12或用工具条上的大红点或点击菜单setbreakpoint,注:断点设置后,在窗口左边框上的大红圆点表示,非常醒目。,设置断点后,点击菜单Debug|Run,程序便处在调试状态。而后程序会自动在断点处暂停,此时左边框上的对应位置会出现一个绿色箭头指示被中断的语句。,.,41,单步执行各语句:此时可查看各变量的内容,以判断程序流程是否正确。,查看变量内容:可以点击工作空间的变量,或者用鼠标指向变量名,变量的值将自动显示。,退出调试工具:选中菜单exitdebugmode清除断点:与设置方法相同。,.,42,因collatz.m程序需要输入参数n,故查看输出结果不能用Run命令,而需在指令窗中输入collatz(5),.,43,6.5程序的优化,避免使用循环(向量化编程)要尽可能地使用向量或矩阵编程,而不是像在其他语言中对向量或矩阵的元素编程。这样,不仅可以使程序较短,而且能大大提高运行速度。要求:编程者须熟悉数组运算和MATLAB的指令,数组的预定义数组空间预配置可提高运行速度(对高阶矩阵的影响尤为明显)以及内存的利用率,否则数组多次扩维会增加内存的碎片。,.,44,clearvr=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;L=length(vr)%计算数组的长度fork=1:Lr(k)=vr(k)/ir(k);%根据各测量点计算电阻endsr=0;fork=1:Lsr=sr+r(k);%计算所有电阻之和endrm=sr/L计算电阻平均值,例:根据测得的一组电压、电流值计算平均电阻值。,1.非向量化编程,.,45,clearvr=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
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 入门白酒品鉴师培训课件
- 供销工作课件教学
- 2025年江西省临川区第一中学物理高三上期末达标检测试题
- 2025年河南省漯河实验高中高三物理第一学期期末考试试题
- 银联卡技术管理办法
- 非工作时间管理办法
- 第25章 随机事件的概率(章节复习)(重点练)解析版
- 高端客户家庭财富资产保全产说会高端版理念
- 知识总结-《人民解放战争的胜利》
- 视频监控摊贩管理办法
- 设备管道 防腐保温施工方案
- NB-T+10488-2021水电工程砂石加工系统设计规范
- 抗震支架采购及施工合同
- (高清版)JTGT 3671-2021 公路交通安全设施施工技术规范
- DZ∕T 0214-2020 矿产地质勘查规范 铜、铅、锌、银、镍、钼(正式版)
- 2024年广东南海控股集团有限公司招聘笔试冲刺题(带答案解析)
- 《智能电气设计》教案全套 陈慧敏 1-20 软件安装-配电柜门设备安装及布线
- 智能制造基础与应用(第2版)教案 第二章 智能制造数字化基础 2.数字化设计与仿真
- 禁毒预防药物滥用
- 开学第一课假期收心主题班会 课件
- 正常血细胞形态学课件
评论
0/150
提交评论