网站大量收购独家精品文档,联系QQ:2885784924

matlab初步程序设计分析.ppt

  1. 1、本文档共75页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MATLAB程序设计 5. 程序的调试和优化 程序的调试 程序的错误种类 错误的识别和程序调试 程序的优化 程序优劣的分析 程序优化的技巧 有效地使用内存 * MATLAB程序设计 (1)程序的错误种类 在MATLAB 7的表达式中可能存在两种类型的错误,即语法错误和运行错误 : 语法错误 语法错误发生在M文件程序代码的生成过程中,一般是由函数参数输入类型有误或是矩阵运算阶数不符等引起。 运行错误 运行错误一般指在程序运行过程中,出现溢出或是死循环等异常现象。 * MATLAB程序设计 (2)错误的识别和程序调试 对于简单的问题,使用下面的一种或几种方法可以方便地求解: 将函数中输出关键值的行的分号(;)去掉,这样,这些运算的中间结果将在命令窗口中予以显示,用户可以据此来检查中间结果的正确性。 在函数中添加一些语句,用来显示用户认为很重要的变量的值。 使用keyboard命令中断程序,该命令实现函数工作区间和命令窗口工作区间的交互,从而获得用户所需要的信息,使用该命令后,程序将处于调试状态,此时命令窗口的提示符由“”变为“K”,用户可以进行相应的操作。 在函数头前加“%”,这样就将函数式M文件变为脚本式M文件,而脚本式M文件运行时,其工作区间就是MATLAB 7的工作区间,这样在出现错误的时候就可以查询这个工作区间。 * MATLAB程序设计 错误的识别和程序调试 错误识别函数及其功能 函 数 名 功 能 描 述 echo 在函数运行时显示代码 disp 显示特定的值或信息 Sprintffprintf 显示不同格式和类型的数据 whos 列出工作区间的所有变量 size 显示矩阵的维数 keyboard 中断程序运行,允许用户从键盘进行交互操作 return 回复keyboard命令后函数的运行 warning 显示特定的警告信息 error 显示特定的错误信息 * MATLAB程序设计 错误的识别和程序调试 程序断点的设置 函 数 描 述 dbstop 用于在M文件中设置断点 dbstatus 显示断点信息 dbtype 显示M文件文本 dbstep 该函数用于从断点处继续执行M文件 dbstack 显示M文件执行时调用的堆栈 dbup/dbdowm 实现工作区间的切换 dbquit 结束调试状态 * MATLAB程序设计 (3)程序优劣的分析 在MATLAB 7语言中,使用profile函数以及计时函数tic和toc来分析程序中各个部分的耗时情况,从而帮助用户找出程序中需要改进的地方。其中profile在计算相对耗时以及查找文件执行过程中瓶颈问题时更为有效,而tic和toc函数在计算绝对耗时时更为有效。 * 程序的优化和加速技巧 P码文件 M文件都是文本文件,MATLAB源代码都能看到,若希望程序的必威体育官网网址性好且运行速度快,可将M脚本文件和M函数文件换成P码文件。 (1) P码文件的生成 P码文件使用pcode命令生成,生成的P码文件与原M文件名相同,其扩展名为“.p”。 语法: pcode Filename.m %在当前目录生成Filename.p pcode Filename.m –inplace %在Filename.m所在目录生成 MATLAB程序的优化和加速的方式很多 MATLAB程序设计 * (2) P码文件的特点 (a) P码文件的运行速度比原M文件速度快。 (b) 存在同名的M文件和P码文件时则P码文件被调用。 (c) P码文件必威体育官网网址性好。用文字编辑软件打开.p文件,看到的是乱码。 M文件性能优化 MATLAB语言是解释性语言,执行速度较慢。为了提高程序的运行效率,编程时需注意: (1) 使用循环时提高效率的措施 (a) 尽量用向量的运算来代替循环操作 (b) 在必须使用多重循环的情况下,尽量外循环次数少、内循环次数多 (c) 应用mex技术。 MATLAB程序设计 * (2) 大型矩阵的预先定维 给大型矩阵动态地定维是很费时的,由于MATLAB变量在使用之前不需要定义和指定维数,当变量新赋值的元素下标超出数组的维数时,MATLAB就为该数组扩维一次,大大地降低了运行效率。 因此,定义大矩阵时,首先用MATLAB的内在函数(如zeros或者ones)对其先进行定维,然后再进行赋值处理,这样可以显著减少所需时间。 (3) 优先考虑内在函数 (4) 采用高效的算法 (5) 尽量使用M函数文件代替M脚本文件 MATLAB程序设计 * 程序优化举例 1.循环的向量化。 例: %一般循环编程 x=1; for k=1:10000 y(k)=l

您可能关注的文档

文档评论(0)

琼瑶文档 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档