第五章MATLAB程序设计.ppt
《第五章MATLAB程序设计.ppt》由会员分享,可在线阅读,更多相关《第五章MATLAB程序设计.ppt(63页珍藏版)》请在课桌文档上搜索。
1、第五章 MATLAB程序设计,5.1 M文件介绍5.2 程序控制结构及语句5.3 变量作用域5.4 文件操作5.5 面向对象的程序设计5.6 程序设计辅助函数5.7 Matlab编译5.8 程序调试5.9 程序设计优化5.10 应用程序接口,5.1 M文件介绍,Matlab的文件类型一般可以分为两种,分别为.mat文件和.m文件。.mat数据文件是matlab以标准二进制格式保存的数据文件,可将工作空间中有用的数据变量保存下来,其生成和调用是由函数save和load完成的。.m文件起因于用户灵活使用Matlab,充分使用Matlab的科技资源;另外,命令行方式程序可读性差,对于复杂的问题,需要
2、编写成易存储的程序文件,由此产生了.m文件。其编辑可以使用多种编辑器,通常可以把.m文件简称为M文件。,5.1.1 M文件的创建与编辑,1.建立新的M文件(1)菜单操作:MATLAB命令窗口的File菜单 New菜单项 M-file命令。(2)命令操作:在MATLAB命令窗口输入命令edit。(3)命令按钮操作:单击MATLAB命令窗口工具栏上的“新建”命令按钮(4)使用DOS状态的edit编辑器编辑(5)使用windows系统的notbook/记事本进行创建(6)使用word进行创建,2.M文件的编辑在使用上述方式创建好M文件后可以通过上面的各类编辑器进行编辑,之后将M文件进行保存。文件保存
3、的目录一般默认为用户当前设置的工作目录注意:所创建编辑的m文件必须纳入matlab搜索路 径后,才能在matlab命令窗口运行。,5.1.2 M文件的分类,m文件的语法类似于c语言,但又有其自身特点。它只是一个简单的ASCII码文本文件,执行程序时逐行解释运行程序,matlab是解释性的编程语言。m文件有两类独立的m文件 称命令文件 可调用m文件 称函数文件(1).命令文件 简单的m文件 命令文件实际上是一串指令的集合,与在命令窗口逐行执行文件中的所有指令,其结果是一样的。没有输入输出参数。,命令式M 文件在运行过程中可以调用MATLAB 工作域内所有的数据,而且,所产生的所有变量均为全局变量
4、,直到用户执行clear命令清除。另外需注意的是:标点符号要运用恰当;注意程序的书写风格,保持程序的可读性;,(2).matlab内置函数文件 matlab自定义的函数文件称内置函数文件 调用内置函数的方法:使用函数名并给出相应的入口、出口参数即可。例如:sin.m函数用type sin查不到。调用格式:y=sin(2*x)实际应用中:x=0:2*pi/180:2*pi;y=sin(2*x)plot(x,y)又如 sqrt(x)求x的平方根 abs(x)求x的绝对值 det(a)求行列式的值 等等。matlab拥有大量的内置数学函数,供我们在数值 运算和符号运算中调用。,(3).函数m文件 需
5、要输入变量,返回输出变量 matlab用户可以根据需要编辑自己的m文件,它们可以像库函数一样方便的调用,从而极大地扩展了matlab 的能力。对于某一类特殊问题,如创建了许多m函数文件,则可形成新的工具箱。这种用matlab语言创建定义新的matlab函数的功能,正体现了matlab语言强大的扩展功能。,函数m文件的格式:function 返回变量=函数名(输入变量)注释说明语句段 程序语句段特定规则:函数m文件第一行必须以单词function作为引导词,必 须遵循如下形式:function=()m文件的文件名必须是.m。程序中的变量均为局部变量,不保存在工作空间中。其变量只在函数运行期间有效
6、。函数被调用时按 函数名(输入变量)格式执行函数执行完后,只保留返回结果,不保留中间过程,例如:function CustomVar01=SimpleFunction(a,b)%SimpleFunction用于显示两个数进行四则运算后的结果%使用help语句时应该能将此句注释显示出来,而使用%lookfor语句时应不能显示c=a+b;%对参数a,b进行加运算d=a-b;%对参数a,b进行减运算e=a*b;%对参数a,b进行乘运算f=a/(b+eps);%对参数a,b进行除运算CustomVar01=c,d,e,f;%将四项基本运算的结果放到一向量中去并显示;调用此函数,则有SimpleFunc
7、tion(2,3)ans=5.0000-1.0000 6.0000 0.6667,使用help语句获得帮助help SimpleFunction SimpleFunction用于显示两个数进行四则运算后的结果 使用help语句时应该能将此句注释显示出来,而使用 lookfor语句时应不能显示使用lookfor语句查询关键字lookfor 四则运算SimpleFunction.m:%SimpleFunction用于显示两个数进行四则运算后的结果注:为了利用MATLAB的关键字搜索功能,应该在M文件的第一行注释中,尽可能多的包含函数的特征信息。,(4).系统文件s函数 用于描述系统运动的专用函数,
8、是特殊的 m 文件。s 函数有3类:由simulink结构图自动创建 可用c语言程序设计mex文件直接定义 用函数m文件编写 s函数一旦创建,即可在框图中使用,也可在文件中调用。s函数的调用格式 sys,x0=sfunction(t,x,u,flag)其中 sys 系统状态 x0 状态初值 sfunction 用户定义的系统 t 当前时刻 x 当前状态值 u 当前输入值 flag 标志量s函数与函数m文件类似,只是输入输出变量是限定的。,例5.1.2-1 建立一个命令文件将变量a,b的值互换,然后运行该命令文件。首先建立命令文件并以文件名exch.m存盘:clear;a=1:10;b=11,1
9、2,13,14;15,16,17,18;c=a;a=b;b=c;a b 然后在MATLAB的命令窗口中输入exch,将会执行该命令文件。,例5.1.2-2 建立一个函数文件将变量a,b的值互换,然后在命令窗口调用该函数文件。首先建立函数文件fexch.m:function a,b=fexch(a,b)c=a;a=b;b=c;然后在MATLAB的命令窗口调用该函数文件:clear;x=1:10;y=11,12,13,14;15,16,17,18;x,y=fexch(x,y),5.2 程序控制结构及语句,matlab语言的程序结构与其它高级语言是一致的,分为顺序结构,分支结构,循环结构。(1).顺
10、序结构 依次顺序执行程序的各条语句(2).分支结构 根据一定条件来执行的各条语句。有些资料中也称其 为选择结构,主要是因为其语句往往是一些选择 判断性的语句。(3).循环结构 被重复执行的一组语句,循环是计 算机解决问题的主要手段。,5.2.1 常见程序控制流语句,input函数 调用格式为:A=input(提示信息,选项);其中提示信息为一个字符串,用于提示用户输入什么样的数据。如果在input函数调用时采用s选项,则允许用户输入一个字符串。例如,想输入一个人的姓名,可采用命令:xm=input(Whats your name?nHow are you?nHow old are you?,s
11、),disp函数 调用格式为 disp(输出项)其中输出项既可以为字符串,也可以为矩阵。注意:用disp函数显示矩阵时将不显示矩阵的名字,而且其格式更紧密,且不留任何没有意义的空行。,例5.2.1-1 求一元二次方程ax2+bx+c=0的根。程序如下:a=input(a=?);b=input(b=?);c=input(c=?);d=b*b-4*a*c;e=sqrt(d);x=(-b+e)/(2*a),(-b-e)/(2*a);disp(x1=,num2str(x(1),x2=,num2str(x(2);,pause函数 其调用格式为:pause(延迟秒数)如果省略延迟时间,直接使用pause,
12、则将暂停程序,直到用户按任一键后程序继续执行。若要强行中止程序的运行可使用Ctrl+C命令。pause暂停程序,等待回应;pause(n)等待n秒后继续执行;pause on 显示并执行pause命令;pause off 显示但不执行pause命令,keyboard 与input类似,功能更强 keyboard 调用键盘与调用m文件一样,当keyboard在m文件中出现时,它停止文件的执行并控制键盘,用于修改程序,重新返回原m文件时使用return语句。break 中断 break 中断for,while循环语句的执行,在嵌套循环结构中,break进从最里层循环推出。menu 产生一个拥护可选
13、择输入的菜单 格式:k=menu(标题,菜单1,菜单2,菜单3),echo 指令 用来控制m文件在执行过程中是否显示 echo on 打开所有命令文件的显示方式 echo off 关闭所有命令文件的显示方式 echo 在以上两者间切换 echo对于命令文件函数文件有所不同,命令文件用法简单,函数对所有命令起作用;函数文件用法较复杂,具体请help查询。echo file on 打开file函数文件的显示方式 echo file off 关闭file函数文件的显示方式 echo file 切换file函数文件的显示方式 echo on all 打开所有函数文件的显示方式 echo off all
14、 关闭所有函数文件的显示方式,5.2.2 分支结构,5.2.2.1 if语句 在MATLAB中,if语句有3种格式。1.单分支if语句 语句格式为:if 条件 语句组 end 当条件成立时,则执行语句组,执行完之后继续执行if语句的后继语句,若条件不成立,则直接执行if语句的后继语句。,2.双分支if语句 语句格式为:if 条件 语句组1 else 语句组2 end 当条件成立时,执行语句组1,否则执行语句组2,语句组1或语句组2执行后,再执行if语句的后继语句。,条件语句组,语句组1,语句组2,是,否,例5.2.2.1-1 计算分段函数值。程序如下:x=input(请输入x的值:);if x
15、=10 y=cos(x+1)+sqrt(x*x+1);else y=x*sqrt(x+sqrt(x);end y,3.多分支if语句语句格式为:if 条件1 语句组1 elseif 条件2 语句组2 elseif 条件n 语句组n else 语句组n+1end,条件1,语句组1,条件2,是,语句组2,是,否,条件n,语句组n,语句组n+1,否,否,是,例5.2.2.1-2输入一个字符,若为大写字母,则输出其后继字符,若为小写字母,则输出其前导字符,若为数字字符则输出其对应的数值,若为其他字符则原样输出。程序如下:c=input(请输入一个字符,s);if c=A end,5.2.2.2 swi
16、tch语句 其语句格式为:switch 表达式 case 表达式1 语句组1 case 表达式2 语句组2 case 表达式m 语句组m otherwise 语句组m+1 end,注意:无需像C语言那样在下一个case语句前加break语句;当需要在开关表达式满足若干个表达式之一时,用单元结构来表示;otherwise等价于C语言的default语句;程序的执行结果与case语句的次序无关。,例5.2.2.2-1 某商场对顾客所购买的商品实行打折销售,已知打折标准,求所售商品的实际销售价格。程序如下:price=input(请输入商品价格);switch fix(price/100)case
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第五 MATLAB 程序设计

链接地址:https://www.desk33.com/p-259699.html