MATLAB85教程第6章程序设计课件

上传人:我*** 文档编号:144963374 上传时间:2020-09-14 格式:PPT 页数:30 大小:223.50KB
返回 下载 相关 举报
MATLAB85教程第6章程序设计课件_第1页
第1页 / 共30页
MATLAB85教程第6章程序设计课件_第2页
第2页 / 共30页
MATLAB85教程第6章程序设计课件_第3页
第3页 / 共30页
MATLAB85教程第6章程序设计课件_第4页
第4页 / 共30页
MATLAB85教程第6章程序设计课件_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《MATLAB85教程第6章程序设计课件》由会员分享,可在线阅读,更多相关《MATLAB85教程第6章程序设计课件(30页珍藏版)》请在金锄头文库上搜索。

1、MATLAB程序设计就是编写M 文件,利用程序结构中的顺序语句、循环语句和分支语句,以及各自的流控制机制,相互配合,达到解决各种复杂问题的方法,使其在科学研究、实践操作中的应用更加深入。 本章重点 关系运算与逻辑运算 顺序语句 循环语句 分支语句,第六章 程序设计,6.1 运算符及其操作运算,在MATLAB编程中,除了经常使用的算术运算符外,还会遇到判断结构,即根据某种条件的数值0或者1而得出不同的结论,这就需要通过某种表达式来产生这种逻辑上的判断数值0或者1,而能够达到这种要求的就是关系运算符和逻辑运算符。,6.1.1 算术操作运算,MATLAB使用的算术运算符为:加()、减()、乘(*)、

2、除(/)、左除()、幂(),以及小括号(),其运算法则在数值计算章节中的数组运算和矩阵运算中都已介绍。具体内容参见数组运算指令(表2-3)和矩阵运算指令与含义(表2-5)。在算术操作过程中,可以随时使用MATLAB平台上提供的大量运算函数,如表2-2提供了常用的基本函数。,6.1.2 关系操作运算,关系操作运算是用关系运算符来实现,它可用来比较两个标量,或两个同样大小的数组,或一个数组和一个标量(实际是数组中的每一个元素与标量比较),比较结果产生0(逻辑假,false)或者1(逻辑真,ture)。 格式:a op b % a和b是算术表达式、变量、字符串等,op是一种关系运算符 常用的比较关系

3、运算符如表6-1所示:,表 6-1 比较关系运算符及含义,6.1.3 逻辑操作运算,逻辑操作运算是由逻辑运算符来实现,主要是使用“与”、“或”将多个表达式组合在一起,或者是对关系式取反,具体格式可写为a for k=1:50 s=s+1/(2*k-1); k=k+1; end s %向量化程序 x=1:2:99; s=sum(1./x),6.2 向量化和预分配,2预分配 若一条代码无法向量化,可以事先将所要输出的结果进行预先分配,即预先给出存储空间,这样可以加快for循环。 譬如在矩阵内存预分配时,划定一个固定的内存块,各数据可直接按行、列存放到相应的位置。若矩阵中不进行预配置内存,则随着行数

4、、列数的变大,MATLAB就必须不断地扩充维数,这样就会大大降低程序的执行效率。,6.3 顺序语句,顺序语句是指依次按顺序执行程序的各条语句,它不需要任何特殊的流控制。 格式:expression %执行表达式命令,显示表达式值 variable=expression %将表达式赋值给变量variable,6.4 循环语句,循环语句一般用于有规律的重复计算。被重复执行的语句称为循环体,控制循环语句走向的语句称为循环条件。MATLAB中有for循环和while循环两种语句。,6.4.1 for循环,for 语句可完成指定次重复的循环,这是广泛应用的语句。 1for 语句的简单形式 格式:for

5、variable=expression statements end 说明:每当循环变量variable取expression中的一个值时,就执行循环体statements一次,直到取完expression中的值。expression常用数组形成表示。 2多重嵌套的for 循环,6.4.2 while循环,while循环是不定次重复的循环语句,即循环次数不固定。 格式:while expression statements end 说明:while语句可不定次数地重复执行statements。当expression为逻辑真或非零值时,就重复执行statements。因此,expression的

6、值应该受到statements的影响,否则这种循环无法结束。通常表达式给出的是一个标量值,但也可以是数组或者矩阵,如果是后者,则要求所有的元素都必须为真。,6.5 条件语句,如果在程序中需要根据一定条件来执行不同的操作时,可以使用条件语句。if是MATLAB中最常用的条件执行语句,它与end语句一起构成各种格式。,6.5.1 if-else-end结构,1if-end结构 最简单的条件语句是仅由if和end组成的语句,它可根据逻辑表达式的值选择是否执行。 格式:if expression statements end 说明:当表达式expression的值为逻辑真或非零值时,执行语句组stat

7、ements。expression通常由关系操作符、逻辑运算符、算术运算符等构成,statements可以是多个语句。,6.5.1 if-else-end结构,2if-else-end结构 利用else和elseif可进一步给出条件,从而构成复杂的条件语句。else表示当前面的if(也可能是elseif)表达式为零或逻辑假时,执行与之相关联的语句。elseif语句表示当前面的if或elseif为零或逻辑假时,计算本语句的表达式;当表达式为非零或逻辑真时,执行与之相关联的语句。 格式:if expression statements1 else statements2 end 说明:当expre

8、ssion为逻辑真或非零值时,执行statements1;否则执行statements2。,6.5.2 switch-case 结构,switch-case-otherwise分支结构主要实现根据表达式的值,在几种情况之间切换的功能。 格式:switch expression(scalar or string) case value1 statements1 case value2 statements2 otherwise statementsn end,6.6 试探结构,try- catch语句是一种错误处理语句,提供一种捕获错误的方法。 格式:try statements1 catch

9、statements2 end 说明:通常情况下,只执行statements1,但当在执行statements1 语句发生错误时,catch控制块就可捕获它,会执行statements2,这样可以在statements2 中对错误作适当处理。可调用lasterr函数查询出错原因。try和catch控制块中的语句之间用逗号隔开。,6.7 流控制命令,在许多程序设计中会碰到需要提前终止循环、跳出子程序、显示出错信息等情况,因此还需要其它的流控制语句来实现这些功能。 6.7.1 continue命令 continue命令的作用是结束本次循环,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的

10、判断,它用在for或while循环结构体内,并和if语句合用来强制终止循环。 6.7.2 break命令 break命令的作用是终止本次循环,跳出最内层循环,即不必等到循环的结束而是根据条件退出循环,它用在for或while循环结构体内,并和if语句合用来强制终止循环。,6.7 流控制命令,6.7.3 return命令 return命令可使正在运行的函数正常退出,并返回调用它的函数继续运行。经常用于函数的末尾作为正常结束函数的运行,当然也可用在某条件满足时强行结束执行该函数。当程序进入死循环则按Ctrl+break键来终止程序的运行。 6.7.4 error和warning命令 格式:erro

11、r(message) warning(message) 说明:error命令是用来指示出错信息并终止当前函数的运行,warning命令用来指示警告信息后程序仍继续运行。,6.7 流控制命令,6.7.5 input命令 命令input用来提示用户从键盘输入数据、字符串或表达式,并接收输入值。 格式:x=input(n) %在屏幕上显示提示信息n,等待用户的输入(可以是一个数或一个代数式),并将输入值(或运算后的值)赋给变量x y=input(n,s) %返回的字符串作为文本变量而不是作为变量名或者数值 说明:在提示信息字符串中,n表示换行,表示一个反斜杠。,6.7 流控制命令,6.7.6 key

12、board命令 命令keyboard被放置在M文件中,将停止文件的执行并将控制权交给键盘。通过在提示符前显示K来表示一种特殊状态。 如在某个位置加入keyboard 命令,则执行到这句话时,MATLAB 的命令窗口将显示如下代码: K 如果要恢复正常的指示符(),只需在(K)之后输入return即可。,6.7 流控制命令,6.7.7 pause命令 pause命令用于暂时中止程序的运行,等待用户按任意键继续进行。 格式:pause %停止M文件的执行,按任意键继续 pause(n) %中止执行程序n秒后继续,n是任意实数 pause on %允许后续的pause命令中止程序的运行 pause

13、off %禁止后续的pause命令中止程序的运行,6.8 综合实例三角形面积计算,【例6-14】 已知三角形的三条边的长度为a、b、c,面积公式为,其中,试编写程序求三角形的面积。 (1)在编辑窗口编写程序: a=input(请输入一个数a:) b=input(请输入一个数b:) c=input(请输入一个数c:) if a0|b0|c0 disp( a、b、c 必须是正数.) return end if a+bc|a+cb|b+ca disp(三角形不存在.) return end s=(a+b+c)/2; A=sqrt(s*(s-a)*(s-b)*(s-c) %三角形的面积,6.8 综合实

14、例三角形面积计算,(2)在命令行窗口中执行程序,并给a、b、c赋不同值,结果如下: 请输入一个数a:-4 a = -4 请输入一个数b:5 b = 5 请输入一个数c:7 c = 7 a、b、c 必须是正数. (3)给a、b、c重新赋不同值,其结果如下: 请输入一个数a:6 a = 6 请输入一个数b:7 b = 7 请输入一个数c:15 c = 15 三角形不存在.,(4)再给a、b、c重新赋不同值,其结果如下: 请输入一个数a:3 a = 3 请输入一个数b:4 b = 4 请输入一个数c:5 c = 5 A = 6,6.8 综合实例学生的成绩管理,【例6-15】 若给出学生的姓名、考试分

15、数,试编写MATLAB程序,判断优秀(90分以上)、良好(8089分)、中等(7079分)、及格(6069分)和不及格(60分以下)五个等级。 编写MATLAB程序如下: clear; for k=1:10 a(k)=89+k;b(k)=79+k;c(k)=69+k;d(k)=59+k; end A=cell(3,6); A(1,:)=YANG,WANG,LIU,SUN,LI,ZHAO; A(2,:)=72,83,56,94,100,69;,6.8 综合实例学生的成绩管理,for k=1:6 switch A2,k case 100 r=优秀(满分); case a r=优秀; case b r=良好; case c r=中等; case d r=及格; otherwise r=不及格; end A(3,k)=r; end A,6.8 综合实例学生的成绩管理,运行结果如下: A = YANG WANG LIU SUN LI ZHAO 72 83 56 94 100 69 中等 良好 不及格 优秀 优秀(满分) 及格,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号