MATLAB语言程序设计.ppt
《MATLAB语言程序设计.ppt》由会员分享,可在线阅读,更多相关《MATLAB语言程序设计.ppt(33页珍藏版)》请在三一办公上搜索。
1、第六讲 MATLAB 语言程序设计,6.1 MATLAB语言的函数的基本结构6.2 全局、局部变量、子函数与私有目录6.3 MATLAB 函数的跟踪调试6.4 MATLAB工具箱编写技巧6.5 MATLAB语言的程序流程语句6.6 MATLAB中新的数据结构6.7 MATLAB 语言编程技巧6.8 例子与习题,6.1 MATLAB 语言函数的基本结构,MATLAB语言提供了两种源程序文件格式,M脚本文件:它实际上是MATLAB命令窗中一系列命令的组合,它没有输入输出参数传递的过程,它直接对工作区中的变量进行处理操作,M函数:这是MATLAB程序设计的主流,它可以传递参数及返回结果,我们主要介绍
2、M函数的编写方法与技巧。,6.1 MATLAB 语言函数的基本结构,M函数是由 function 语句引导的,其基本格式如下,function 返回变量列表函数名(输入变量列表)由该符号引导的注释语句段,在MATLAB命令窗中用命令 help 函数名 所得到的帮助就是这段文字。输入、返回变量格式的检测函数体语句,只要进入该函数,MATLAB就自动生成 nargin 和 nargout 两个变量,分别表示输入变量和输出变量的个数。程序中可以根据这两个变量的值来判断用户输入参数的情况。,6.1 MATLAB 语言函数的基本结构,M函数典型例子,function magout,phase,w=bod
3、e(a,b,c,d,iu,w)%BODE Bode frequency response of LTI models.%BODE(SYS)draws the Bode plot of the LTI model SYS(created with%either TF,ZPK,SS,or FRD).The frequency range and number of%points are chosen automatically.%See also BODEMAG,NICHOLS,NYQUIST,SIGMAni=nargin;no=nargout;.%end bode,6.1 MATLAB 语言函数
4、的基本结构,说明,注释符号引导的内容不能含空行,否则,后续的内容不能由 help 命令看到,大部分作者及版权信息都是空行后的注释内容。,当返回变量只有一个时,不用方框号括起来。,函数名与该函数存盘用的文件名要一样,否则MATLAB寻找的是文件名符合的函数,而且老版本的MATLAB不能用超过8个字符的函数名。,6.1 MATLAB 语言函数的基本结构,说明(续),可以用 type 函数名 来看函数文件的内容。,可以用 edit 函数名 来查看或编辑函数文件。,为了使得MATLAB认识该函数,要将该函数所在的目录用cd 命令设为当前目录,或用命令addpath添加到MATLAB的路径中去(也可以用
5、MATLAB菜单下的PATH命令)。,6.2 全局、局部变量、子函数与私有目录,MATLAB工作区中的变量和M函数内部的变量都是局部变量,他们是互不干扰的,但也可以显性地把变量定义为全局变量,使得他们在整个程序中都起作用。,全局变量定义格式为 global a b c d注意变量之间不能用逗号分开,在MATLAB工作区和M函数内部同时要声明该变量为全局变量。,为保证函数的独立性,一般情况下不建议使用全局变量。,6.2 全局、局部变量、子函数与私有目录,从MATLAB 5.0 开始引入子函数。所谓子函数就是一个函数文件中不但包含该函数本身,还包含专门由该函数调用的下一级函数,这样的专门函数称为子
6、函数。子函数是不能有其他文件中的函数调用的。,私有目录即在当前的 MATLAB 目录下建立一个 private 子目录,该目录下的内容只能由当前目录下的函数调用,而不能有其他函数调用。,6.3 MATLAB函数的跟踪调试,用 MATLAB 自带的编辑器 EDIT编辑所要跟踪调试的程序,在希望的语句上设置断点,在MATLAB命令窗按正常方式运行命令,程序会自动停留在所设的断点处。,调试状态下,MATLAB命令窗的命令提示符变为 K。这时可输入任何MATLAB命令,变量为函数内部的局部变量,而不是工作区中的变量。,调试状态下,鼠标指针指向想查询的局部变量上将立即能显示出该变量值。,6.3 MATL
7、AB函数的跟踪调试,跟踪调试程序中 Debug 菜单下的子菜单项的功能如下表,6.4 MATLAB工具箱编写技巧,将为某种专门目的编写一组 MATLAB 函数放在一个目录下,就形成了一个新的工具箱。为了使得用户能象MATLAB提供的工具箱一样使用该工具箱,必须将该工具箱所在的目录用命令 addpath 添加到MATLAB的搜索路径中去。为了能使得命令 help 工具箱名 能列出该工具箱的所有函数的功能介绍,应该按下述格式编写一个名为 contents.m 的文件。第一行给出工具箱名称,第二行给出版本信息,由命令 ver 工具箱名 可以获得该工具箱的版本信息。一般在该工具箱下还有一文件 read
8、me.m 用来存放有关该工具箱的版本升级信息,使用命令 whatsnew 工具箱名 查看的就是该文件的信息。,6.4 MATLAB工具箱编写技巧,type contents.m%Symbolic Math Toolbox.%Version 2.1.2(R12.1)11-Sep-2000%New Features.%Readme-Overview of the new features in/changes made to%the Symbolic and Extended Symbolic Math Toolboxes.%Calculus.%diff-Differentiate.%Linear
9、 Algebra.%poly-Characteristic polynomial.%Simplification.%simplify-Simplify.%Solution of Equations.%solve-Symbolic solution of algebraic equations.%Variable Precision Arithmetic.%vpa-Variable precision arithmetic.,6.5 MATLAB语言的程序流程语句,MATLAB 提供了循环语句结构、条件语句结构、开关语句结构以及试探语句。,for 循环变量=s1:s2:s3 循环体语句组end,
10、循环语句结构,for 循环变量=Vector 循环体语句组end,6.5 MATLAB语言的程序流程语句,例一、t=0;for i=1:1:100;t=t+i;end,循环语句结构,例二、w=0.1:0.05:1,1.5:0.5:10,15:5:100,150:50:1000;a=0 1;-1 2;b=0;1;c=1 2;d=0;m=;I=eye(size(A);for i=w,m=m;C*inv(sqrt(-1)*I*I-A)*B+D);end,6.5 MATLAB语言的程序流程语句,条件语句结构,if 条件式1 条件块语句组1else 条件块语句组2end,if 条件式1 条件块语句组1e
11、lseif 条件式2 条件块语句组2else 条件块语句组n+1end,6.5 MATLAB语言的程序流程语句,条件语句结构,例一if a=0 a=1;else a=-1;end,例二if a0 a=1elseif a0 a=-1else a=0end,6.5 MATLAB语言的程序流程语句,开关结构,switch 开关表达式case 表达式1 语句段1case 表达式2,表达式3,表达式m 语句段2 otherwise 语句段nend,6.6 MATLAB中新的数据结构,数据结构体 struct,从5.0版本开始,MATLAB 提供了几种新的数据结构类型,他们是数据结构体 struct,类
12、class和单元结构cell。,与C语言不同,MATLAB中数据结构类型的变量不用定义一个结构体先,直接用就可以,如下例。,student_rec.number=1;student_rec.name=Ying;student_rec.height=165;student_rec.test=100,80,75;77,60,92;67,28,80;100,89,78;student_recstudent_rec=number:1 name:Ying height:165 test:4x3 double,6.6 MATLAB中新的数据结构,数据结构体 struct,引用成员变量,student_re
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 语言程序设计
链接地址:https://www.31ppt.com/p-5439327.html