MATLAB程序设计基础PPT课件_第1页
MATLAB程序设计基础PPT课件_第2页
MATLAB程序设计基础PPT课件_第3页
MATLAB程序设计基础PPT课件_第4页
MATLAB程序设计基础PPT课件_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

1 MATLAB程序设计 Matlab语言体系是Matlab的重要组成部分之一 Matlab为用户提供了具有条件控制 函数调用 数据输入输出及面向对象等特性的高层的 完备的编程语言 Matlab语言语法简单 程序调试和维护容易 其编程效率远远高于C等高级语言 2 主要内容 Matlab的工作模式M文件的创建与打开Matlab程序结构函数文件程序的调试 3 1 Matlab的工作方式有两种 1 交互式的指令行操作方式用户在命令窗口中按照Matlab的语法规则输入命令行并按下回车键后 系统将执行该命令并及时给出运算结果 该方式简便易行 非常适合于简单问题的数学演算 结果分析及测试 缺点 命令行操作时 Matlab窗口只允许一次执行一行上的一个或几个语句 命令行方式程序可读性差 而且不能存储 4 2 M文件的编程工作方式用户通过命令窗口中调用M文件 从而实现一次执行多条Matlab语句的方式 M文件是由Matlab语句 命令行 构成的ASCII码文本文件 M文件中的语句应符合Matlab的语法规则 且文件名必须以 m为扩展名 如 eg moive m 用户可以用任何文本编辑器来对M文件进行编辑 5 M文件的作用是 当用户在命令窗口中输入已编辑并保存的M文件的文件名并按下回车键后 系统将搜索该文件 若该文件存在 系统将按M文件中的语句所规定的计算任务以解释的方式逐一执行语句 从而实现用户要求的特定功能 M文件又分两类 命令M文件 命令文件 独立的m文件函数M文件 函数文件 可调用的m文件 6 命令文件 运行命令文件的效果等价于从Matlab命令窗口中按顺序逐条输入并运行文件的指令 特点 可以访问Matlab当前工作空间中的所有变量和数据命令文件中运行过程中创建或定义的变量均被保存在工作空间 没有输入输出参数因此 命令文件通常作为主程序来设计 7 命令文件包括两部分 注释文件和程序文件 RANKNumberoflinearlyindependentrowsorcolumns K RANK X isthenumberofsingularvaluesofX thatarelargerthanMAX SIZE X NORM X EPS K RANK X tol isthenumberofsingularvaluesofXthat arelargerthantol Copyright c 1984 94byTheMathWorks Inc s svd x if nargin 1 tol max size x max s eps endr sum s tol 程序部分 8 函数文件 也是由Matlab语句 命令行 构成的ASCII码文本文件Matlab用户可以根据需要编辑自己的m文件 它们可以像库函数一样方便的调用 从而极大地扩展了Matlab的能力 对于某一类特殊问题 如创建了许多m函数文件 则可形成新的工具箱 这种用Matlab语言创建定义新的Matlab函数的功能 正体现了Matlab语言强大的扩展功能 9 函数m文件的格式 function返回变量 函数名 输入变量 注释说明语句段程序语句段特定规则 函数m文件第一行必须以单词function作为引导词 必须遵循如下形式 function m文件的文件名必须是 m 程序中的变量均为局部变量 不保存在工作空间中 其变量只在函数运行期间有效 10 2 m文件的创建与打开 M文件是一个普通文本文件 它可以用任何编辑程序来建立和编辑 最为方便的是使用Matlab提供的文本编辑器 1 建立新的M文件建立新的M文件 启动Matlab文本编辑器有3种方法 11 菜单操作 从Matlab主窗口的File菜单中选择New菜单项 再选择M file命令 屏幕上将出现Matlab文本编辑器窗口 命令操作 在Matlab命令窗口输入命令edit 启动Matlab文本编辑器后 输入M文件的内容并存盘 命令按钮操作 单击Matlab主窗口工具栏上的NewM File命令按钮 启动Matlab文本编辑器后 输入M文件的内容并存盘 12 2 打开已有的M文件菜单操作 从Matlab主窗口的File菜单中选择Open命令 则屏幕出现Open对话框 在Open对话框中选中所需打开的M文件 在文档窗口可以对打开的M文件进行编辑修改 编辑完成后 将M文件存盘 命令操作 在Matlab命令窗口输入命令 edit文件名 则打开指定的M文件 命令按钮操作 单击Matlab主窗口工具栏上的OpenFile命令按钮 再从弹出的对话框中选择所需打开的M文件 13 3 Matlab的程序结构 Matlab的控制语句同c语言有相似之处 但没有c语言复杂 灵活和多变 因而语法比较简单 容易掌握 Matlab语言的程序结构与其它高级语言是一致的 分为顺序结构 循环结构 分支结构 14 1 顺序结构 依次顺序执行程序的条语句 数据的输入使用input函数从键盘输入数据 调用格式为 A input 提示信息 选项 其中提示信息为一个字符串 用于提示用户输入什么样的数据 如果在input函数调用时采用 s 选项 则允许用户输入一个字符串 例如 想输入一个人的姓名 可采用命令 xm input What syourname s B A 15 数据的输出 Matlab提供的命令窗口输出函数主要有disp函数 其调用格式为 disp 输出项 其中输出项既可以为字符串 也可以为矩阵 16 例2 输入x y的值 并将它们的值互换后输出 程序如下 x input Inputxplease y input Inputyplease z x x y y z disp x disp y 17 例3求一元二次方程ax2 bx c 0的根 程序如下 a input a b input b c input c d b b 4 a c x b sqrt d 2 a b sqrt d 2 a disp x1 num2str x 1 x2 num2str x 2 18 2 选择结构 if语句在Matlab中 if语句有4种格式 1 单分支if语句当条件成立时 则执行语句组 执行完之后继续执行if语句的后继语句 若条件不成立 则直接执行if语句的后继语句 假 if 条件表达式 语句 end if 条件表达式 语句 语句 if 条件表达式 语句 语句 end 19 2 if语句的双分支选择结构 if 条件表达式 语句1 else语句2 end 当条件成立时 执行语句组1 否则执行语句组2 语句组1或语句组2执行后 再执行if语句的后继语句 if语句的双分支形式 在语法上视为一条语句 20 例4 计算分段函数的值 程序如下 x input 请输入x的值 ifx 0y x sqrt pi exp 2 elsey log x sqrt 1 x x 2 end 21 3 if语句的多分支选择结构 执行过程 if条件1语句组1 elseif条件2语句组2 elseif条件m语句组m else语句组n end 22 4 if语句的二层嵌套结构 if 表达式1 if 表达式1 2 语句1 1 else语句1 2 endelseif 表达式2 1 语句2 1 else语句2 2 end 23 if语句是根据表达式的值是否为0来判断执行哪一分支的 某些情况下 要根据表达式的不同值来判断执行哪一分支 如表达式的值为1 2 3时 分别执行不同的操作 虽然也可以用多条if语句来完成这一工作 但Matlab语言中提供了一条switch语句 可以更方便的完成 24 switch语句 开关分支语句 switch表达式case表达式1语句组1 case表达式2语句组2 case表达式m语句组m otherwise语句组n end switch语句根据表达式的取值不同 分别执行不同的语句 其语句格式为 25 例6某商场对顾客所购买的商品实行打折销售 标准如下 商品价格用price来表示 price 200没有折扣200 price 5003 折扣500 price 10005 折扣1000 price 25008 折扣2500 price 500010 折扣5000 price14 折扣输入所售商品的价格 求其实际销售价格 26 price input 请输入商品价格 switchfix price 100 case 0 1 价格小于200rate 0 case 2 3 4 价格大于等于200但小于500rate 3 100 casenum2cell 5 9 价格大于等于500但小于1000rate 5 100 casenum2cell 10 24 价格大于等于1000但小于2500rate 8 100 casenum2cell 25 49 价格大于等于2500但小于5000rate 10 100 otherwise 价格大于等于5000rate 14 100 endprice price 1 rate 输出商品实际销售价格 27 2 循环结构 重复执行的一组语句 for语句 for 表达式1 表达式2 表达式3 循环体语句 end 1 计算表达式1 通常用于循环开始前设置变量初值 2 计算表达式2 值为0则结束循环 否则执行第3步 3 执行循环体语句 4 计算表达式3 返回第2步 fori 表达式 1 表达式为一个向量2 依次将向量的的各元素赋给循环变量3 执行循环体语句 直至向量中各元素处理完毕 28 例8 利用for循环求1 2 3 5 的值sum 0 fori 1 5pdr 1 fork 1 ipdr pdr k endsum sum pdr end 29 2 循环结构 重复执行的一组语句 for语句 for 表达式1 表达式2 表达式3 循环体语句 end 1 计算表达式1 通常用于循环开始前设置变量初值 2 计算表达式2 值为0则结束循环 否则执行第3步 3 执行循环体语句 4 计算表达式3 返回第2步 fori 表达式 fori 矩阵表达式 1 表达式为一个向量2 依次将向量的的各元素赋给循环变量3 执行循环体语句 直至向量中各元素处理完毕 1 表达式为一个矩阵2 依次将矩阵的各列元素赋给循环变量3 执行循环体语句 直至向量中各元素处理完毕 30 例10写出下列程序的执行结果 s 0 a 12 13 14 15 16 17 18 19 20 21 22 23 fork as s k enddisp s 31 while语句 执行过程 表达式一般是由逻辑运算和关系运算以及一般运算组成 若表达式的值非0 则执行循环体语句 执行后再判断条件是否成立 直到表达式值为0 循环停止 while 表达式 循环体语句end 32 例11 用while循环求1 100间整数的和sum 0 i 1 whilei 100sum sum i i i 1 endsumsum 5050 33 break语句和continue语句 与循环结构相关的语句还有break语句和continue语句 break语句用于终止循环的执行 当在循环体内执行到该语句时 程序将跳出循环 继续执行循环语句的下一语句 continue语句控制跳过循环体中的某些语句 当在循环体内执行到该语句时 程序将跳过循环体中所有剩下的语句 继续下一次循环 34 例13求 100 200 之间第一个能被21整除的整数 程序如下 forn 100 200ifrem n 21 0continueendbreakendn 35 4 函数文件 1 函数文件的基本结构函数文件由function语句引导 其基本结构为 function输出形参表 函数名 输入形参表 注释说明部分函数体语句其中以function开头的一行为引导行 表示该M文件是一个函数文件 函数名的命名规则与变量名相同 输入形参为函数的输入参数 输出形参为函数的输出参数 当输出形参多于一个时 则应该用方括号括起来 36 例14编写函数文件求半径为r的圆的面积和周长 函数文件如下 function s p fcircle r CIRCLEcalculatetheareaandperimeterofacircleofradiir r圆半径 s圆面积 p圆周长 2004年7月30日编s pi r r p 2 pi r 37 2 函数调用 函数调用的一般格式是 输出实参表 函数名 输入实参表 要注意的是 函数调用时各实参出现的顺序 个数 应与函数定义时形参的顺序 个数一致 否则会出错 函数调用时 先将实参传递给相应的形参 从而实现参数传递 然后再执行函数的功能 38 例15利用函数文件 实现直角坐标 x y 与极坐标 之间的转换 函数文件tran m function rho theta tran x y rho sqrt x x y y theta atan y x 调用tran m的命令文件main1 m x input Pleaseinputx y input Pleaseinputy rho the tran x y rhothe 39 在Matlab中 函数可以嵌套调用

温馨提示

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

评论

0/150

提交评论