MATLAB GUI设计全解-基于App Designer的实现方法 课件 第3章 程序设计_第1页
MATLAB GUI设计全解-基于App Designer的实现方法 课件 第3章 程序设计_第2页
MATLAB GUI设计全解-基于App Designer的实现方法 课件 第3章 程序设计_第3页
MATLAB GUI设计全解-基于App Designer的实现方法 课件 第3章 程序设计_第4页
MATLAB GUI设计全解-基于App Designer的实现方法 课件 第3章 程序设计_第5页
已阅读5页,还剩31页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

控制语句

1234

2学习目标continue命令break命令keyboard命令return命令5

input()函数

3continue命令continue语句通常用于for或while循环体中,其作用就是跳过本次循环,即跳过当前循环中未被执行的语句,执行下一轮循环。提示:continue语句多与if一同使用,当if条件满足时,程序将不再执行continue后的语句,而是开始下一轮的循环。

4break命令break语句也常用于for或while循环体中,与if一同使用。当if后的表达式为真时就调用break语句,跳出当前循环。注意:break语句仅终止最内层的循环。提示:①当break命令碰到空行时,将直接退出while循环;②break语句完全退出for或while循环;continue语句是跳过循环中的其余指令,并开始下一次循环;③break用于退出循环,是在for或while循环之内定义的;函数退出需要使用return。

5keyboard命令在MATLAB中,将keyboard命令放置到M文件中,将使程序暂停运行,等待键盘命令。此时,命令行窗口显示一种特殊状态的提示符k>>,只有当用户使dbcont命令结束输入后,控制权才交还给程序。说明:用dbcont命令可以终止调试模式并继续执行程序;使用dbquit命令可以终止调试模式并退出文件而不完成执行程序。

6return命令通常,被调用函数执行完毕后,MATLAB会自动把控制转至主调函数或指定窗口。如果在被调函数中插入return命令,可以强制MATLAB结束执行该函数并把控制转出。

7input()函数在MATLAB中,input()函数用于将MATLAB的控制权暂时借给用户,用户利用键盘输入数值、字符串或表达式等,通过按Enter键将内容输入工作区中,同时将控制权交还给MATLAB。说明:在MATLAB中,keyboard命令和input()函数的不同之处在于,keyboard命令运行用户输入的任意多个MATLAB命令,而input()函数只能输入赋值给变量的数值。感谢选用本书作为教材!★获取学习资源8程序结构

作者:刘浩12310学习目标顺序结构循环结构条件结构

11顺序结构语句就是顺序执行程序的各条语句

12循环结构多用于有规律语句的重复计算,被重复执行的语句称为循环体,控制循环语句走向的语句称为循环条件。1.for循环在MATLAB中,最常见的循环结构是for循环,常用于已知循环次数的情况,循环判断条件通常就是循环次数。

13一般的高级语言中,若变量没有设置初始值,程序会以0作为其初始值,而在MATLAB中是不允许的。所以,在MATLAB中应给出变量的初始值。(1)程序①没有clear,程序调用到内存中已经存在sum值,因此结果为sum=10100。(2)程序②与程序①的差别是少了sum=0,此时因为程序中有clear语句,故出现错误信息。

142.while循环与for循环不同,while循环的判断控制是逻辑判断语句,只有条件为true(真)时重复执行while循环,因此循环次数并不确定提示:为了避免因逻辑上的失误导致陷入死循环,建议在循环体语句的适当位置加break语句。

15注意:while循环和for循环都是比较常见的循环结构,但是两个循环结构还是有区别的。其中最明显的区别在于,while循环的执行次数是不确定的,而for循环的执行次数是确定的。在程序设计中,当满足一定的条件方能执行对应的操作时,就需要用到条件结构(分支结构)。在MATLAB中有if和switch两种条件语句。1.if条件if条件结构是一个条件分支结构语句,若满足条件表达式,则往下执行;若不满足,则跳出if条件结构。

16

17说明:(1)每一个if都对应一个end,即有几个if,就应有几个end;(2)if分支结构是所有程序结构中比较灵活的结构之一,可以使用任意多个elseif语句,但是只能有一个if语句和一个end语句;(3)if语句可以根据实际需要将各个if语句进行嵌套,从而解决比较复杂的实际问题。

182.switch结构在MATLAB中,switch结构适用于条件多且比较单一的情况,类似于一个数控的多个开关。感谢选用本书作为教材!★获取学习资源19程序调试

作者:刘浩1234

21学习目标常见的错误类型直接调试法工具调试法程序调试命令5

程序调试剖析

221.输入错误常见的输入错误除了在写程序时疏忽所导致的手误外,一般还有以下几种:(1)在输入某些标点时没有切换成英文状态;(2)表循环或判断语句的关键词for、while、if的个数与end的个数不对应(尤其是在多层循环嵌套语句中);(3)左右括号不对应。

232.语法错误语法错误就是指输入不符合MATLAB语言的规定。例如在用MATLAB语句表示数学式k1≤x≤k2时,不能直接写成“k1≤x≤k2”,而应写成“k1≤x&x≤k2”。此外,输入错误也可能导致语法错误。3.逻辑错误在程序设计中逻辑错误也是较为常见的一类错误,这类错误往往隐蔽性较强、不易查找。产生逻辑错误的原因通常是算法设计有误,这时需要对算法进行修改。

244.运行错误程序的运行错误通常包括不能正常运行和运行结果不正确,出错的原因一般有以下几种:(1)数据不对,即输入的数据不符合算法要求;(2)输入的矩阵大小不对,尤其是当输入的矩阵为一维数组时,应注意行向量与列向量在使用上的区别;(3)程序不完善,只能对某些数据正确运行,而对另一些数据则无法正常运行,或者根本无法正常运行,这有可能是算法考虑不周所致。

25对于程序中出现的语法错误,可以采用直接调试法,即直接运行该M文件,MATLAB将直接找出语法错误的类型和出现的位置,根据MATLAB的反馈信息对语法错误进行修改。MATLAB本身的运算能力较强,指令系统比较简单,因此,程序一般都显得比较简洁,对于简单的程序,采用直接调试法往往是很有效的。通常采取的措施如下。(1)通过分析,将重点怀疑语句后的分号删掉,将结果显示出来,然后与预期值进行比较。(2)当单独调试一个函数时,将第一行的函数声明注释掉,并定义输入变量的值,然后以脚本方式执行此M文件,这样就可保存原来的中间变量,从而可以对这些结果进行分析,找出错误。

26(3)可以在适当的位置添加输出变量值的语句。(4)在程序的适当位置添加keyboard指令。当MATLAB执行至此处时将暂停,并显示K>>提示符,用户可以查看或改变各个工作空间中存放的变量,在提示符后输入return指令可以继续执行程序文件。

27当M文件很大或M文件中含有复杂的嵌套时,则需要使用MATLAB调试器对程序进行调试,即使用MATLAB提供的大量调试函数及与之相对应的图形化工具。

28MATLAB提供了一系列程序调试命令,利用这些命令,可以在调试过程中设置、清除和列出断点,逐行运行M文件,在不同的工作区检查变量,跟踪和控制程序的运行,帮助寻找和发现错误。所有的程序调试命令都是以字母db开头的,

29感谢选用本书作为教材!★获取学习资源30程序语法规则

作者:刘浩1232学习目标编程方法程序设计中的变量

33MATLAB中的变量有自己的命名规则,即必须以字母开头,之后可以是任意字母、数字或下划线;但是不能有空格,且变量名区分字母大小写。MATLAB还包括一些特殊的变量——预定义变量(特殊常量)程序设计中定义的变量有局部变量和全局变量两种类型。注意:(1)在使用全局变量之前必须首先定义,建议将定义放在函数体的首行位置;(2)为提高程序的可读性,建议采用大写字符命名全局变量;(3)全局变量会损坏函数的独立性,造成程序的书写和维护困难,尤其在大型程序中,不利于模块化,因此并不推荐使用。

34说明:每个希望共享全局变量的函数或MATLAB基本工作空间必须逐个对具体变量加以专门定义,没有采用global指令定义的函数或基本工作空间将无权使用全局变量。注意:当某个函数的运行使得全局变量发生了变化,其他函数工作空间及基本工作空间内的同名变量会随之变化。只要与全局变量相联系的工作空间有一个存在,全局变量就存在。

35控制顺序结构有两大类:选择结构,用于选择执行特定的语句;循环结构,用于重复执行特定部分

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论