MATLAB编程-讲义及实例PPT课件_第1页
MATLAB编程-讲义及实例PPT课件_第2页
MATLAB编程-讲义及实例PPT课件_第3页
MATLAB编程-讲义及实例PPT课件_第4页
MATLAB编程-讲义及实例PPT课件_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

1 MATLAB语言 机械与汽车工程学院 2012 03 2 3 教学内容 MATLAB程序控制M脚本文件和M函数文件变量的检测传递和限权使用函数函数句柄图形用户界面编程 GUI 第四章程序设计 4 4 1程序流程语句 选择结构ifswitch循环结构whilefor 5 4 1 1选择结构1 if条件语句组end当条件成立时 则执行语句组 执行完之后继续执行语句的后继语句 若条件不成立 则直接执行if语句的后继语句 4 1程序流程语句 6 4 1 1选择结构语句 7 4 1 1选择结构语句 8 4 1程序流程语句 4 1 1选择结构例 给定两个实数 按代数值的大小输出其中大的a bb a两次判断条件 9 4 1 1选择结构2 if条件语句组1else语句组2end当条件成立时 执行语句组1 否则执行语句组2 语句组1或语句组2执行后 再执行if语句的后继语句 4 1程序流程语句 10 4 1程序流程语句 4 1 1选择结构例 给定两个实数 按代数值的大小输出其中大的 11 4 1程序流程语句 4 1 1选择结构例 x为磨床冷却液温度传感器得到的温度值 这里用18 28的随机数代替 如果温度在21 25 之间 在监控器上显示 温度正常 低于21 显示报警 磨削液温度过低 高于25 显示报警 磨削液温度过高 温度25三次判断条件 12 4 1程序流程语句 4 1 1选择结构3 if条件1语句组elseif条件2语句组2 elseif条件m语句组melse语句组nend语句用于实现多分支选择结构 13 4 1程序流程语句 3 2 1选择结构例 x为磨床冷却液温度传感器得到的温度值 这里用18 28的随机数代替 如果温度在21 25 之间 在监控器上显示 温度正常 低于21 显示报警 磨削液温度过低 高于25 显示报警 磨削液温度过高 14 4 1程序流程语句 4 1 1选择结构思考 计算分段函数的值XX 2 2 2 2 15 4 1程序流程语句 16 4 1程序流程语句 4 1 1选择结构4 switch表达式case表达式1语句组1 case表达式2语句组2 case表达式m语句组m otherwise语句组n end 17 4 1程序流程语句 4 1 1选择结构例 某商场对顾客所购买的商品实行打折销售 标准如下 商品价格用price来表示 price 200没有折扣200 price 5003 折扣500 price 10005 折扣1000 price 25008 折扣2500 price 500010 折扣5000 price14 折扣输入所售商品的价格 求其实际销售价格 18 4 1程序流程语句 19 4 1程序流程语句 4 1 1选择结构思考 给出学生的百分制成绩 要求转化成成绩等级输出 等级分为 优秀 良好 中等 及格 90分以上的为 优秀 80 89的为 良好 70 79的为 中等 60 69的为 及格 其他为 不及格 20 4 1程序流程语句 21 4 1程序流程语句 4 1 2循环结构1 while语句while语句的一般格式为 while 条件 循环体语句end其执行过程为 若条件成立 则执行循环体语句 执行后再判断条件是否成立 如果不成立则跳出循环 22 4 1程序流程语句 4 1 2循环结构例 求1 2 3 100的和 23 4 1程序流程语句 24 4 1程序流程语句 4 12循环结构2 for语句for语句的格式为 for循环变量 表达式1 表达式2 表达式3循环体语句end其中表达式1的值为循环变量的初值 表达式2的值为步长 表达式3的值为循环变量的终值 步长为1时 表达式2可以省略 25 4 1程序流程语句 4 1 2循环结构例 求1 2 2 100的和 26 4 1程序流程语句 4 1 2循环结构例 写出下列程序的执行结果 s 0 a 12 13 14 15 16 17 18 19 20 21 22 23 fork as s k enddisp s 27 4 1程序流程语句 28 29 30 4 1程序流程语句 4 1 2循环结构3 循环的嵌套如果一个循环结构的循环体又包括一个循环结构 就称为循环的嵌套 或称为多重循环结构 例 有一数 1 1 1 1 2 2 2 2 3 3 3 3 1 2 3 10 1 2 3 10 1 2 3 10 31 4 1程序流程语句 32 4 1程序流程语句 4 1 2循环结构思考 一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数 输出全部水仙花数 33 4 1程序流程语句 34 4 1程序流程语句 4 1 3其他流程控制语句1 break语句和continue语句break语句用于终止循环的执行 当在循环体内执行到该语句时 程序将跳出循环 继续执行循环语句的下一语句 continue语句控制跳过循环体中的某些语句 当在循环体内执行到该语句时 程序将跳过循环体中所有剩下的语句 继续下一次循环 35 4 1程序流程语句 例 求 100 200 之间第一个能被21整除的整数 36 4 1 3其他流程控制语句2 try语句语句格式为 try语句组1catch语句组2endtry语句先试探性执行语句组1 如果语句组1在执行过程中出现错误 则将错误信息赋给保留的lasterr变量 并转去执行语句组2 4 1程序流程语句 37 4 1程序流程语句 38 4 1程序流程语句 小作业 猜数游戏 首先由计算机产生 1 100 之间的随机整数 然后由用户猜测所产生的随机数 根据用户猜测的情况给出不同提示 如猜测的数大于产生的数 则显示 High 小于则显示 Low 等于则显示 Youwon 同时退出游戏 用户最多可以猜7次 39 4 1程序流程语句 40 M命令文件 M文件是一个文本文件 它可以用任何编辑程序来建立和编辑 而一般常用且最为方便的是使用MATLAB提供的文本编辑器 4 2M命令文件和M函数文件 4 2 1M命令文件 41 1 建立新的M文件为建立新的M文件 启动MATLAB文本编辑器有3种方法 1 菜单操作 从MATLAB主窗口的File菜单中选择New菜单项 再选择M file命令 屏幕上将出现MATLAB文本编辑器窗口 2 命令操作 在MATLAB命令窗口输入命令edit 启动MATLAB文本编辑器后 输入M文件的内容并存盘 3 命令按钮操作 单击MATLAB主窗口工具栏上的NewM File命令按钮 启动MATLAB文本编辑器后 输入M文件的内容并存盘 4 2 1M命令文件 4 2M命令文件和M函数文件 42 2 打开已有的M文件打开已有的M文件 也有3种方法 1 菜单操作 从MATLAB主窗口的File菜单中选择Open命令 则屏幕出现Open对话框 在Open对话框中选中所需打开的M文件 在文档窗口可以对打开的M文件进行编辑修改 编辑完成后 将M文件存盘 2 命令操作 在MATLAB命令窗口输入命令 edit文件名 则打开指定的M文件 3 命令按钮操作 单击MATLAB主窗口工具栏上的OpenFile命令按钮 再从弹出的对话框中选择所需打开的M文件 4 2 1M命令文件 4 2M命令文件和M函数文件 43 44 3程序调试 Debug菜单项该菜单项用于程序调试 需要与Breakpoints菜单项配合使用 Breakpoints菜单项该菜单项共有6个菜单命令 前两个是用于在程序中设置和清除断点的 后4个是设置停止条件的 用于临时停止M文件的执行 并给用户一个检查局部变量的机会 相当于在M文件指定的行号前加入了一个keyboard命令 4 2 1M命令文件 4 2M命令文件和M函数文件 45 4 2 2函数文件functions数学中的一种对应关系 是从非空集合A到实数集B的对应 精确地说 设X是一个非空集合 Y是非空数集 f是个对应法则 若对X中的每个x 按对应法则f 使Y中存在唯一的一个元素y与之对应 就称对应法则f是X上的一个函数 记作y f x 称X为函数f x 的定义域 集合 y y f x x X 为其值域 值域是Y的子集 x叫做自变量 y叫做因变量 习惯上也说y是x的函数 4 2M命令文件和M函数文件 46 4 2 2函数文件M文件可以根据调用方式的不同分为两类 命令文件 ScriptFile 和函数文件 FunctionFile 4 2M命令文件和M函数文件 47 例 分别建立命令文件和函数文件 将华氏温度f转换为摄氏温度c 程序1 首先建立命令文件并以文件名f2c m存盘 f input InputFahrenheittemperature c 5 f 32 9然后在MATLAB的命令窗口中输入f2c 将会执行该命令文件 执行情况为 InputFahrenheittemperature 73c 22 7778 48 程序2 首先建立函数文件f2c m functionc f2c f c 5 f 32 9然后在MATLAB的命令窗口调用该函数文件 y input InputFahrenheittemperature x f2c y 输出情况为 InputFahrenheittemperature 70c 21 1111x 21 1111 49 4 2 2函数文件结构函数文件由function语句引导 其基本结构为 function输出形参表 函数名 输入形参表 注释说明部分函数体语句其中以function开头的一行为引导行 表示该M文件是一个函数文件 函数名的命名规则与变量名相同 输入形参为函数的输入参数 输出形参为函数的输出参数 当输出形参多于一个时 则应该用方括号括起来 4 2M命令文件和M函数文件 50 例编写函数文件求半径为r的圆的面积和周长 函数文件如下 function s p fcircle r CIRCLEcalculatetheareaandperimeterofacircleofradiir r圆半径 s圆面积 p圆周长 2004年7月30日编s pi r r p 2 pi r 4 2M命令文件和M函数文件 函数M文件一般由5个部分组成 1 函数定义行 2 H1行 3 函数帮助文本 4 函数体 5 注释 51 4 2M命令文件和M函数文件 52 4 2 2函数调用函数文件编制好后 就可以调用函数进行计算输出形参表 函数名 输入形参表 要注意的是 函数调用时各实参出现的顺序 个数 应与函数定义时形参的顺序 个数一致 否则会出错 函数调用时 先将实参传递给相应的形参 从而实现参数传递 然后再执行函数的功能 4 2M命令文件和M函数文件 53 例 利用函数 求n 4 2M命令文件和M函数文件 54 例 利用函数 求1 2 3 n 4 2M命令文件和M函数文件 55 在MATLAB中 函数可以嵌套调用 即一个函数可以调用别的函数 甚至调用它自身 一个函数调用它自身称为函数的递归调用 4 2M命令文件和M函数文件 56 例 利用函数的递归调用 求n 显然 求n 需要求 n 1 这时可采用递归调用 递归调用函数文件factor m如下 4 2M命令文件和M函数文件 57 例nargin用法示例 x 1 3 y 1 2 3 charray x charray x y charray x y 3 4 2M命令文件和M函数文件 58 给定两个实数a b 一个自然数n 求解当n 1 10时所有的 a b n和 a b n 59 首先建立函数文件addsub mfunction out1 out2 addsub a b n 计算 a b n和 a b nout1 a b n out2 a b n 建立调用上述子函数的函数文件ex ma input a b input b addresult 1 10 subresult 1 10 forn 1 10 addresult n subresult n addsub a b n endaddresultsubresult 60 M函数文件的特点 从形式上看 与脚本文件不同 函数文件的笫一行总是以 function 引导的 函数申明行 从运行上看 与脚本文件运行不同 每当函数文件运行 MATLAB就会专门为它开辟一个临时工作空间 称为函数工作空间 Functionworkspace 当执行文件最后一条指令时 就结束该函数文件的运行 同时该临时函数空间及其所有的中间变量就立即被清除 MATLAB允许使用比 标称数目 较少的输入 输出参量 实现对函数的调用 function 输出参量1 输出参量2 函数名 输出参量1 输出参量2 61 柯雷茨 collatz 猜想对于任意的正整数n 如果n是偶数则除以2 如果还是偶数再除以2 直至成为奇数 把这个奇数乘以3加1再除以2 如果是偶数继续除以2 直至成为一个新的奇数 然后再将这个奇数乘以3加1 按照同样的办法计算下去 经过若干次计算之后 最后的得数是1 4 2M命令文件和M函数文件 62 4 2 3全局变量与局部变量全局变量用global命令定义 格式为 global变量名例 全局变量应用示例 先建立函数文件wadd m 该函数将输入的参数加权相加functionf wadd x y globalALPHABETAf ALPHA x BETA y 在命令窗口中输入 globalALPHABETAALPHA 1 BETA 2 s wadd 1 2 4 2M命令文件和M函数文件 63 4 3 1函数所传递参数的可调性在调用函数时 MATLAB用两个永久变量nargin和nargout分别记录调用该函数时的输入实参和输出实参的个数 只要在函数文件中包含这两个变量 就可以准确地知道该函数文件被调用时的输入输出参数个数 从而决定函数如何进行处理 4 3变量的检测传递和限权使用函数 64 例nargin用法示例 函数文件charray m 4 3变量的检测传

温馨提示

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

评论

0/150

提交评论