第16章MATLAB70程序调试优化和出错处理.ppt

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第16章MATLAB70程序调试优化和出错处理

第16章 程序调试、优化和出错处理 程序调试的重要性毋庸置疑,有时调试工作所占用的时间甚至远超过程序设计、代码编写所用时间。MATLAB的程序调试功能强大,较之于VS、BC等更加简洁、方便,具有更好的所见即所得特性,这些内容将在第16.1节作详细介绍。 MATLAB程序是能够完成指定功能的代码集合,完成指定的功能当然是程序的重要目标之一,但往往还不是最重要的目标。在资源(时间、内存及其他相关设备资源)有限的条件下,决定程序质量好坏的标准往往是程序的性能,当然还包括程序界面等。程序的性能指标主要是指完成指定功能所需的时间和内存。第16.2节中给出了一些MATLAB程序优化应该遵循的原则及要注意的事项,这些都可以在某种程度上提高MATLAB程序性能。另外本节还介绍了MATLAB的性能分析工具,利用该工具可以更客观地度量程序的性能。 16.1 调试 MATLAB是一种边解释边执行的程序语言,这为程序的调试提供了众多的便利,尤其要强调的是其良好的所见即所得特性,更是VS、Eclipse等所不能比拟的。除了内置的一系列调试函数之外,MATLAB还提供了专门的MATLAB调试器(即M文件编辑器),通过该调试器、结合调试函数,用户可以完成大部分的调试工作。 本节首先介绍调试的基本任务,接着详细讨论调试函数、MATLAB调试器及其相关的调试技术,最后对MATLAB中的错误和警告及其相关的调试技术进行了简要介绍,它们在第16.3节出错处理中有重要应用。 16.1.1 调试的基本任务 程序调试的概念源于英文术语“Debug”,意为找到、去除程序中的“bug”(bug可以简单地理解为错误)。对大部分程序,可能存在的bug可以大致分为如下三类。语法错误 逻辑错误 异常 语法错误是由于程序员疏忽等原因而造成代码违背程序语言规则,这是初学者经常犯的一类错误。一般地,编译器能够找到大部分的语法错误,MATLAB编译器更是如此,在某种程度上这是由于MATLAB语言较C++、Java等语法相对简单的缘故。 逻辑错误主要是由于程序员对问题求解的程序流程或程序语言本身特性认识有误差而造成程序执行结果(包括中间结果)出现错误。一般来说,编译器对这类错误无能为力,MATLAB编译器也不例外。逻辑错误也是大部分程序调试的主要工作。 16.1.2 调试函数 MATLAB内置了一系列的调试函数,用于程序执行过程相关的显示、执行中断、断点设置、单步执行操作等。通过在MATLAB命令窗口输入以下指令: help debug 用户可以查询到这些调试函数,它们均以db开头, 16.1.3 MATLAB调试器 但前面利用MATLAB调试函数对MATLAB程序进行调试还有一些不足之处: 不够简便,需要输入过多的调试代码; 不够直观; 对具有多重函数调用的大型程序不使适用。 用户也许希望拥有像VS类似的、具有图形用户界面的调试器,为此MATLAB提供了专门的MATLAB程序调试器,该调试器很好集成在M文件编辑器之中,具有良好的所见即所得特性,操作控制简单方便,功能强大,下面将为用户详细介绍其特性及使用方法。MATLAB调试器集成在文件编辑器的调试工具栏,包括7个调试按钮和一个空间堆栈下拉框, 16.1.4 警告和错误 MATLAB程序在执行过程中若遇到语法错误或异常,则会抛出错误或警告。错误和警告信息中包含了错误和警告发生的代码行行号,由此可以迅速地找到MATLAB程序中的语法错误或异常,下面通过一个简单的例子说明警告、错误相关的除错技术。 16.2 性能优化 广义上来说,程序性能的范畴不仅包括程序的时间效率(即执行效率)和空间效率(主要指内存使用效率),还涉及程序的稳定性、可靠性、适应性等多种指标。但本节仅讨论狭义的程序性能,即程序的执行效率和内存使用效率,及相关的性能优化技术。 从理论上分析程序的性能不是本节所要讨论的内容,这里首先介绍MATLAB的程序性能分析工具Profiler,用以衡量程序的性能,并在后续的内容中验证相关性能优化技术的效果;随后的两节分别讨论执行效率优化和内存优化相关的技术。 16.2.1 性能分析 查找程序性能瓶颈是提升程序性能的第一步。MATLAB提供的码表(stopwatch)能够给出指定代码运行的时间,通过比较不同代码的运行时间,用户可以粗略分析程序的性能。下面是码表的一个简单使用示例,通过该例子可以很容易地理解码表的使用方法。 16.2.2 效率优化技术 一般地,用户在初次编写代码时,不需要过多地考虑效率问题,而是将精力更多地放在程序的结构、可读性等方面,大部分的程序优化工作是在程序性能分析之后完成的。本小节主要讨论程序的时间效率优化技术,接下来的小节将讨论内存优化技术,当然两者在某些方面是重叠的。下面列出了一些读者可以借鉴的

文档评论(0)

liudao + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档