第7章-程序设计(MATLAB课件).ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第7章-程序设计(MATLAB课件).ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 MATLAB 课件
- 资源描述:
-
1、MATLAB 7.0MATLAB 7.0从入从入门到精通门到精通哈尔滨工业大学哈尔滨工业大学(威海威海)汽车工程学院汽车工程学院2023-2-122课程主要内容课程主要内容 第第1章章 MATLAB简介简介 第第2章章 数值运算数值运算 第第3章章 单元数组和结构单元数组和结构 第第4章章 字符串字符串 第第5章章 符号运算符号运算 第第6章章 MATLAB绘图基础绘图基础 第第7章章 程序设计程序设计 第第8章章 计算方法的计算方法的MATLAB实现实现 第第9章章 优化设计优化设计 第第10章章 SIMULINK仿真初探仿真初探2023-2-123第第7章章 程序设计程序设计 MATLAB
2、作为一种广泛应用于科学计算的工作为一种广泛应用于科学计算的工具软件,不仅具有强大的数值计算、符号计具软件,不仅具有强大的数值计算、符号计算、矩阵运算的能力和丰富的绘图功能,还算、矩阵运算的能力和丰富的绘图功能,还可以像可以像C语言、语言、FORTRAN等计算机高级语言等计算机高级语言一样进行程序设计,编写扩展名为一样进行程序设计,编写扩展名为.m的的M文文件,实现各种复杂的运算,同时件,实现各种复杂的运算,同时MATLAB自自带的许多函数就是带的许多函数就是M文件函数,用户也可以文件函数,用户也可以利用利用M文件来生成和扩充自己的函数库。文件来生成和扩充自己的函数库。2023-2-1247.1
3、 脚本和函数脚本和函数 所谓所谓M文件,简单来说就是用户把要实现文件,简单来说就是用户把要实现的命令写在一个以的命令写在一个以.m作为扩展名的文件中,作为扩展名的文件中,然后由然后由MATLAB系统进行解释,最后运行系统进行解释,最后运行出结果。出结果。M文件有函数和脚本两种格式。两者只是文件有函数和脚本两种格式。两者只是在语法和使用上有些不同。脚本式在语法和使用上有些不同。脚本式M文件文件没有输入参数或输出参数,而函数式没有输入参数或输出参数,而函数式M文文件有输入参数和输出参数;函数可以有零件有输入参数和输出参数;函数可以有零个或多个输入或输出变量。个或多个输入或输出变量。2023-2-1
4、257.1.1 脚本脚本 脚本是一个扩展名为脚本是一个扩展名为.m的文件,其中包含了的文件,其中包含了MATLAB的各种命令,与批处理文件很类似,在的各种命令,与批处理文件很类似,在MATLAB命令窗口下直接输入此文件的主文件名,命令窗口下直接输入此文件的主文件名,MATLAB可逐一执行在此文件内的所有命令,和可逐一执行在此文件内的所有命令,和在命令窗口逐行输入这些命令一样。脚本式在命令窗口逐行输入这些命令一样。脚本式M文文件运行产生的所有变量都是全局变量,运行脚本件运行产生的所有变量都是全局变量,运行脚本后,所产生的所有变量都驻留在后,所产生的所有变量都驻留在MATLAB基本工基本工作空间,
5、只要用户不使用作空间,只要用户不使用clear命令加以清除,且命令加以清除,且MATLAB指令窗口不关闭,这些变量将一直保存。指令窗口不关闭,这些变量将一直保存。基本空间随基本空间随MATLAB的启动而产生,在关闭的启动而产生,在关闭MATLAB软件时该基本空间被删除。软件时该基本空间被删除。例:例:huitu0.m2023-2-126huitu0程序结果2023-2-1277.1.2 函数函数 MATLAB中许多常用的函数都是函数式中许多常用的函数都是函数式M文件,文件,使用时,使用时,MATLAB获取传递给它的变量,利用操获取传递给它的变量,利用操作系统所给的输入,运算得到要求的结果,然后
6、作系统所给的输入,运算得到要求的结果,然后返回这些结果。函数文件类似于一个黑箱,由函返回这些结果。函数文件类似于一个黑箱,由函数执行的命令以及这些命令所创建的中间变量都数执行的命令以及这些命令所创建的中间变量都是隐含的。运算过程中的中间变量都是局部变量是隐含的。运算过程中的中间变量都是局部变量(除特别声明外除特别声明外),存放在函数本身的工作空间内,存放在函数本身的工作空间内,不会和不会和MATLAB基本工作空间的变量相互覆盖,基本工作空间的变量相互覆盖,对用户来说,可见的只是输入和输出,因此易于对用户来说,可见的只是输入和输出,因此易于使程序模块化,特别适合于大型程序代码。使程序模块化,特别
7、适合于大型程序代码。例:例:huitu.m huitu.m2023-2-128huitu(1,2,3)程序结果程序结果2023-2-1297.2 M文件的程序结构文件的程序结构 程序结构一般分为顺序结构、循环结构、程序结构一般分为顺序结构、循环结构、分支结构三种。分支结构三种。理论上讲,只要有以上三种结构就可以构理论上讲,只要有以上三种结构就可以构造功能强大的程序。造功能强大的程序。与大多数计算机语言一样,与大多数计算机语言一样,MATLABMATLAB也提也提供了上述三种程序结构。供了上述三种程序结构。虽然虽然MATLABMATLAB没有没有C C语言那样具有丰富的控语言那样具有丰富的控制结
8、构,但是制结构,但是MATLABMATLAB自身的强大功能弥自身的强大功能弥补了这个不足,使用户在编程时几乎感觉补了这个不足,使用户在编程时几乎感觉不到困难。下面分别对这三种结构进行介不到困难。下面分别对这三种结构进行介绍。绍。2023-2-12107.2.1 顺序结构顺序结构 顺序结构就是依次顺序地执行程序的各条顺序结构就是依次顺序地执行程序的各条语句。顺序结构一般不含有其他子结构或语句。顺序结构一般不含有其他子结构或控制语句,批处理文件就是典型的顺序结控制语句,批处理文件就是典型的顺序结构的文件。构的文件。例:例:jizhi.m2023-2-1211jizhi程序结果程序结果2023-2-
9、12127.2.2 循环结构循环结构 在实际计算中,经常会碰到许多有规律的在实际计算中,经常会碰到许多有规律的重复计算,此时就要对某些语句进行重复重复计算,此时就要对某些语句进行重复执行。执行。一组被重复执行的语句称为循环体,每个一组被重复执行的语句称为循环体,每个循环语句都要有循环条件,以判断循环是循环语句都要有循环条件,以判断循环是否要继续进行下去。否要继续进行下去。MATLAB中的循环语句包括中的循环语句包括for循环与循环与while循环。循环。2023-2-12131、for循环循环 for循环允许一组命令以固定的和预定的次循环允许一组命令以固定的和预定的次数重复执行,数重复执行,f
10、or循环的一般形式如下所示:循环的一般形式如下所示:for 循环变量循环变量=数组数组 循环体循环体(执行语句执行语句);end 在在for与与end语句之间的执行语句是按矩阵语句之间的执行语句是按矩阵(或数组或数组)中的每一列执行一次,即在每一次中的每一列执行一次,即在每一次循环中,矩阵循环中,矩阵(或数组或数组)元素一个一个地被赋元素一个一个地被赋给循环变量,然后由执行语句执行。给循环变量,然后由执行语句执行。例:例:for1.m,specmat.m2023-2-1214程序结果程序结果 for1 x=Columns 1 through 7 2.0304 1.8008 1.5131 1.4
11、165 1.7183 2.5111 3.7462 Columns 8 through 10 5.2620 6.8587 8.38912023-2-1215 specmat(6)ans=1 1 1 1 1 1 1 2 3 4 5 6 1 3 6 10 15 15 1 4 10 10 15 15 1 5 15 15 15 15 1 6 15 15 15 152023-2-1216 用用for循环语句需要注意以下事项:循环语句需要注意以下事项:(1)不能在不能在for循环体内重新对循环变量循环体内重新对循环变量n赋赋值来终止循环的执行。值来终止循环的执行。(2)for循环可以进行嵌套循环。循环可以进
12、行嵌套循环。(3)循环语句内的循环语句内的“;”可防止中间变量的输可防止中间变量的输出。出。2023-2-12172、while循环循环 与与for循环固定的次数求一组命令的值相反,循环固定的次数求一组命令的值相反,while循环以不定的次数来求一组命令的值。循环以不定的次数来求一组命令的值。while循环循环的一般形式如下:的一般形式如下:while 表达式表达式 循环体循环体();n+1;(自增自增)end 只要表达式中的元素为真,就执行只要表达式中的元素为真,就执行while和和end语语句之间的命令。通常,表达式给出的是一个标量句之间的命令。通常,表达式给出的是一个标量值,但数组值,但
13、数组(或矩阵或矩阵)同样有效。若为数组同样有效。若为数组(或矩阵或矩阵),则要求所有的元素都必须为真。则要求所有的元素都必须为真。例:例:while1.m2023-2-1218程序结果程序结果 while1 a=2.46192023-2-1219程序实例程序实例 问题描述:根据统问题描述:根据统计学的基础知识分计学的基础知识分析样本的平均值和析样本的平均值和标准差。标准差。例:例:for2.m和和while2.m1121121NNxxNsxNxNiiNiiNii2023-2-1220程序结果程序结果 for2 Enter the number of the points:6 Enter the
14、 value:1 Enter the value:3 Enter the value:5 Enter the value:7 Enter the value:9 Enter the value:0 The mean of this data set is:4.166667 The standard deviation is:3.488075 The number of data is:62023-2-1221 while2 Enter the first value:1 Enter the other value:3 Enter the other value:5 Enter the othe
15、r value:7 Enter the other value:9 Enter the other value:0 Enter the other value:-1 The mean of this data set is:4.166667 The standard deviation is:3.488075 The number of data is:62023-2-12227.2.3 分支结构分支结构 在程序设计中,经常要根据一定的条件来在程序设计中,经常要根据一定的条件来执行不同的语句。当某些条件满足时,只执行不同的语句。当某些条件满足时,只执行其中的某个语句或某些语句。在这种执行其中的
16、某个语句或某些语句。在这种情况下,分支结构就会是很好的选择了。情况下,分支结构就会是很好的选择了。在在MATLAB中的分支结构语句包括中的分支结构语句包括if-else-end语句与语句与switch-case-otherwise语句。语句。2023-2-12231、if-else-end选择语句选择语句 if-else-end选择语句的结构如下所示:选择语句的结构如下所示:if条件式条件式1 表达式表达式1;elseif条件式条件式2 表达式表达式2;.else 表达式表达式n;end 哪一个哪一个if后的表达式中值为真,就执行该后的表达式中值为真,就执行该if后的表后的表达式,否则跳过该表
17、达式进行其它判断。达式,否则跳过该表达式进行其它判断。例:例:ff.m2023-2-1224程序结果程序结果 ff(-1)ans=1 ff(2)ans=0.5000 ff(8)ans=0.9894 ff(16)ans=42023-2-1225 采用采用plot(x,ff(x)绘分段函数图。绘分段函数图。x1=-2:0.01:0;x2=0.5:0.01:5;x3=5.01:0.01:10;x4=10.01:0.01:12;plot(x1,ff(x1)hold on plot(x2,ff(x2)plot(x3,ff(x3)plot(x4,ff(x4)grid on2023-2-1226程序结果程序
18、结果2023-2-1227 MATLAB中的选择语句中的选择语句switch-case-otherwise,是,是特别让熟悉特别让熟悉C等高级语言的用户方便地编写等高级语言的用户方便地编写M文文件而专门添加的。件而专门添加的。switch-case-otherwise语句的通语句的通用格式如下:用格式如下:swith expression case value1 statements1;.case valuen statementsn;otherwise statements;end2、switch-case-otherwise分支语句分支语句2023-2-1228 其中,其中,switch-
19、expression给出了开关条件,给出了开关条件,当有当有case-expression与之匹配时,就执行其与之匹配时,就执行其后的语句,如果没有后的语句,如果没有case-expression与之匹与之匹配,就执行配,就执行otherwise后面的语句。在执行后面的语句。在执行过程中,只有一个过程中,只有一个case命令被执行,当执行命令被执行,当执行完命令后,程序就跳出分支结构,执行完命令后,程序就跳出分支结构,执行end下面的语句。下面的语句。例:例:fm.m2023-2-1229程序结果程序结果 fm(0)ans=20 fm(1)ans=40 fm(2)ans=60 fm(3)ans
20、=80 fm(5)ans=1002023-2-1230工程实例工程实例 问题描述:向上斜问题描述:向上斜抛的小球,具有如抛的小球,具有如下的运动模型,仿下的运动模型,仿真小球的运动轨迹,真小球的运动轨迹,并计算小球在以什并计算小球在以什么样的角度斜抛时么样的角度斜抛时具有最大的水平距具有最大的水平距离,距离是多少。离,距离是多少。例:例:ball.mgvytvxgvtvvvvyxyyx22sincos20max0max000002023-2-1231程序结果程序结果 ball Enter the initial velocity:20 Range versus angle theta:0 0.
21、0000 5 7.0732 10 13.9316 15 20.3666 20 26.1828 25 31.2034 30 35.2760 35 38.2767 40 40.11442023-2-1232 45 40.7332 50 40.1144 55 38.2767 60 35.2760 65 31.2034 70 26.1828 75 20.3666 80 13.9316 85 7.0732 90 0.0000 Max ranges is 40.7332 at 45 degrees.2023-2-1233图形结果图形结果2023-2-12347.3 程序流控制程序流控制 在许多程序设计语言
22、中,经常要碰到提前终在许多程序设计语言中,经常要碰到提前终止循环、跳出程序、显示出错信息等,此时止循环、跳出程序、显示出错信息等,此时就需要用到控制程序流的命令。在就需要用到控制程序流的命令。在MATLAB中,同样有这样的程序控制流命中,同样有这样的程序控制流命令。令。下面逐一介绍下面逐一介绍MATLAB中的程序流的控制中的程序流的控制命令。命令。2023-2-12351、continue命令命令 continue命令经常与命令经常与for或或while语句一起使语句一起使用,其作用是结束本次循环,即跳过循环用,其作用是结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一体中下面尚未执
23、行的语句,接着进行下一次是否执行循环的判断。次是否执行循环的判断。注:当条件满足时,注:当条件满足时,continue语句才被调用,语句才被调用,跳出后面的语句,循环继续,条件不满足跳出后面的语句,循环继续,条件不满足则继续执行后面的程序。则继续执行后面的程序。例:例:continue1.m2023-2-1236程序结果程序结果 continue1 3 5 7 9 11 4 6 8 10 12 5 7 9 11 13 6 8 10 12 14 7 9 11 13 15 8 10 12 14 16 9 11 13 15 17 10 12 14 16 18 11 13 15 17 19 12 14
展开阅读全文