32)matlab程序设计

上传人:xzh****18 文档编号:51661965 上传时间:2018-08-15 格式:PPT 页数:47 大小:693KB
返回 下载 相关 举报
32)matlab程序设计_第1页
第1页 / 共47页
32)matlab程序设计_第2页
第2页 / 共47页
32)matlab程序设计_第3页
第3页 / 共47页
32)matlab程序设计_第4页
第4页 / 共47页
32)matlab程序设计_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《32)matlab程序设计》由会员分享,可在线阅读,更多相关《32)matlab程序设计(47页珍藏版)》请在金锄头文库上搜索。

1、1第讲 MATLAB程序设计l尚涛,电子信息工程学院lTel:010-823172222本讲目标l 掌握MATLAB的几种基本控制转移语句l学会使用M文件进行编程l具备对复杂问题的编程求解能力3主要内容l程序设计概述lMATLAB程序结构lM文件l调试4.1 程序设计概述lMATLAB是第四代编程语言l程序简洁l可读性很强l调试容易l编程效率高l易移植和维护 l通过编程可求解复杂性更高或特殊的计算问题第一代 机器语言 特征:面向机器。 第二代 汇编语言 特征:用指令符号代替二进制代码 第三代 C、C+、pascal等 特征:面向过程 第四代 java,c#等特征:面向对象5l与其他高级语言相比

2、 具有语法相对简单、使用方便、容易调试等优 点l在编程工作方式下,要求具有l数据结构l控制流l输入输出l面向对象6l编制一种扩展名为.m的MATLAB程序(简称M文件)l编辑环境7.2 MATLAB程序结构l按照程序设计的观点, 任何算法功能都可以通过 由程序模块组成的三种基本流程控制结构的组 合来实现: l顺序结构:程序按程序语句或模块在执行流中的顺 序逐个执行。 l分支结构:程序按设定的条件实现程序执行流的多 路分支。 l循环结构:程序按给定的条件重复地执行指定的程 序段或模块。85.2.1顺序结构程序模块1程序模块2lMATLAB中实现顺序结构的方法非常简单:l只需将程序语句顺序排列即可

3、 9example.m文件theta=-pi:0.01:pi; rho(1,:)=2*sin(5*theta).2; polar(theta,rho(1,:)执行example105.2.2 分支结构l在MATLAB中,选择结构由 两种语句结构实现:lif语句lswitch语句条件程序模块1成立不成立程序模块23.2.2 选择结构11if语句if表达式程序模块1else程序模块2 end12if语句的两种变形l(1) 单分支if语句:只有一个分支的选择结构 if表达式程序模块 endl(2) 多分支if语句:超过2个的选择 if表达式1程序模块1elseif 表达式2程序模块2 elseif

4、表达式n程序模块nelse程序模块n+1 end13例:将百分制的学生成绩转换为五级制的成绩输出clear n=input(输入n= ); if n=90r=A elseif n=80r=B elseif n=70r=C elseif n=60r=D elser=E end运行结果: 输入n= 87 r = B14switch语句switch 表达式case 数值1程序模块1;case 数值2 程序模块2; otherwise程序模块n end15例:将百分制的学生成绩转换为五级制的成绩输出使用switch语句 clear n=input(输入n= ); switch fix(n/10) %f

5、ix 取整 case 10,9r=Acase 8r=Bcase 7r=Ccase 6r=Dotherwiser=E end运行结果: 输入n= 65 r = D165.2.3 循环结构l在MATLAB中,循环结构可 以由两种语句结构实现:lfor语句循环结构lwhile语句循环结构程序模块不成立成立条件3.2.2 选择结构17for语句循环结构for循环变量起始值:步长:终止值 循环体 end18例:使用for结构计算1+2+3+100clear sum=0; for i=1:100sum=sum+i; end sum运行结果: sum =505019while语句循环结构while表达式循环

6、体 end20例:使用while结构计算1+2+3+100clear sum=0; i=0; while i100 i=i+1; sum=sum+i; end sum运行结果: sum =5050215.3 M文件M文件两种形式l命令文件(Script)l命令和函数的结合l文件运行不需要输入参数和输出参数l按顺序自动执行命令l函数文件(Function)l用Function声明l可以包含输入参数和输出参数l文件运行须给出输入参数自动化模块化225.3.1基本组成结构说明 定义变量 %包括全局变量的声明及参数值的设定 逐行执行命令 %指MATLAB提供的运算指令或工具箱提供的专用命令 /分支/循

7、环 %包含for,if then,switch,while等语句 逐行执行命令 end %表示结束,可以没有 235.3.2 M文件的编辑及工作路径的设置l进入MATLAB的Editor/Debugger窗口来编辑程序l在编辑环境中,文字的不同颜色显示表明不同属性绿色:注解; 黑色:程序主体;红色:属性值的设定; 蓝色:控制流程。l在运行程序之前,必须设置好MATLAB的工作路径。 通过cd指令在命令窗口中可以更改、显示当前工作路径。l通过路径浏览器(path browser)可以进行设置24255.3.3命令文件l又称为脚本文件,是一串指令的集合。l用户只需键入该命令文件的文件名,系统就会

8、自动逐行执行该文件中的各条语句。l适用于小规模运算。265.3.4函数文件l函数文件基本格式:function 输出形参列表=函数名(输入形参列表 )注释说明语句段程序语句段 end27函数内容: (1)第一行帮助行,即H1行以(%)开头,作为lookfor指令搜索的行 (2)函数体说明及有关注解以(%)开头,用以说明函数的作用及有关内容。 如果不希望显示某段信息,可在它的前面加空行 (3)函数体语句函数体内使用的除返回和输入变量这些在function 语句中直接引用的变量以外的所有变量都是局部 变量,即在该函数返回之后,这些变量会自动在 MATLAB的工作空间中清除掉。28函数文件29函数程

9、序使用的变量函数程序与主程序之间的数据是通过参数 进行传递的,函数程序应用主程序传递来 的参数进行计算后,将结果返回主程序。30%主程序exp2_9.m a=input(please input value of a=); b=input(please input value of b=); c=sumhe(a,b) % 在此例中,主程序exp2_9.m设定了两个参数a和b来调用 % 子程序sumhe.m(为一个函数文件), % 所以执行主程序时,子程序就会调用主程序传递过来的 % a和b值进行计算,再将结果返回主程序。%子程序sumhe.m %sumhe(a,b) sum the seria

10、l of numbers from a tob function result=sumhe(a,b) result=a+b; end315.4局部变量和全局变量如果一个函数内的变量没有特别声明,那么这 个变量只在函数内部使用,即为局部变量。 如果两个或多个函数共用一个变量(或者说在函 数程序中也要用到主程序中的变量,注意不是 参数),那么可以用global来将它声明为全局变 量。全局变量的使用可以减少参数传递,合理利用 全局变量可以提高程序执行的效率。32%主程序exp2_10.m global a %声明变量a为全局变量 x=1:100; a=3; c=prods(x) %调用子程序prod

11、s.m%子程序prods.m function result=prods(x) global a result=a*sum(x); %声明了与主程序一样的全局变量a,以便在子程序中可以 %使用主程序中定义的变量335. 5 人机交互l人机交互命令 echo on(off) 执行命令前先显示其内容 pause(n) 程序执行到此处,暂停n秒,或键入任意键后才继续执行 keyboard 程序执行到此处暂停,屏幕显示K,用户可以做任何操作, 需恢复运行时,键入return input(提示符) 程序执行到此处暂停,屏幕显示引号中的字符串,要求用户 输入数据 C 强行停止程序运行345.6 M文件调试

12、l两种类型的错误l语法错误:由用户的错误操作引起的l运行错误:算法错误和程序设计错误引起的35编辑器的编辑与调试36373839扩展阅读l其他流程控制语句l1. break语句l2. continue语句l3. return语句l4. try语句l5. echo命令l6. input命令l7. keyboard命令l8. pause命令 lGUI程序设计(图形用户界面)lMATLAB应用程序接口(API) l提供库函数l与C或FORTRAN语言混合编程40其他章节lSimulink系统建模仿真分析的软件包l线性和非线性系统l连续和离散时间系统l图像、视频、声音的处理lMATLAB的综合应用l电

13、路l电力系统l信号与系统l数字信号处理l图像处理41本节介绍了matlab程序设计基础知识,通过学习应该掌握:M文件的编写方法M文件的调试方法小 结42上机指导lM文件的调试43Task(1)l使用M文件编辑average函数文件,P162。注 意对向量的判断条件。44Task(2)l求1!+2!+3!+ +5!的值 clear sum=0; for i=1:5pdr=1;for k=1:ipdr=pdr*k;endsum=sum+pdr; endsum运行结果: sum =15345Task(3)l使用While 循环编写例子9-13,理解循环发生的过程 。46Task(4-6)l二维绘图中plot函数的使用,以及多矢量绘图 和线性参数的设置。例6-4,6-6,6-7。l三维绘图中三维曲线图和网格图,例6-22,6- 23、6-24。l在实际参数比较时,经常使用窗口分割,例6- 8。47思考问题lMATLAB中M文件两种形式与用途

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

当前位置:首页 > 行业资料 > 其它行业文档

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