《机电系统与仿真技术》课件8MatLab程序设计及M文件.ppt
《《机电系统与仿真技术》课件8MatLab程序设计及M文件.ppt》由会员分享,可在线阅读,更多相关《《机电系统与仿真技术》课件8MatLab程序设计及M文件.ppt(40页珍藏版)》请在文字多文库上搜索。
1、回顾:基础知识,2023/5/13,矩阵生成基本运算矩阵运算多项式解方程绘图命令,还记得哪些常用命令?,2023/5/13,2023/5/13,其他绘图指令,2023/5/13,三维绘图指令,2023/5/13,第2讲 Matlab程序设计及仿真,2023/5/13,1.M文件脚本文件概述,MATLAB语言的程序可以有两种方式来执行,即命令行方式和m文件方式。由于MATLAB语言的文件,以“.m”作扩展名,因此均称为m文件。M文件可分为函数程序和脚本程序两种:函数程序可以接受输入参数,并可以产生输出;脚本程序是MatLab表达式的集合,不可以接受参数。,脚本文件是一种简单的M文件,它没有输入参
2、数;可以是一系列在命令行中执行命令的集合,也可以是操作工作空间中的变量和程序中新建的变量。脚本程序在工作空间创建的变量,在程序运行结束后仍然可以使用。M脚本文件既不需要预先定义,也不需要接受输入变量,而是直接输入变量名,脚本程序就会按顺序执行命令。,2023/5/13,1.M文件脚本文件编写,脚本文件编写步骤:,第一步 单击MatLab指令窗口工具条上的New File图标或者【file】菜单下new子菜单中的M-file,如下图所示。打开如图2-2所示的MatLab文件编辑调试器Matlab Editor/Debugger。其窗口名默认为Untitled,用户可在空白窗口中编写程序。,202
3、3/5/13,1.M文件脚本文件编写,针对所给分段函数,输入如下一段程序:a=2;b=2;clf;%clf 函数用于清除当前图像窗口x=-a:0.2:a;y=-b:0.2:b;for i=1:length(y)for j=1:length(x)if x(j)+y(j)1 z(i,j)=0.85*exp(-0.5*y(i)2-3.75*x(j)2-1.5*x(i);elseif x(j)+y(j)-1 z(i,j)=0.546*exp(-0.75*y(i)2-3.75*x(j)2+1.5*x(i);else z(i,j)=0.97*exp(-y(i)2-6*x(j)2);end endendax
4、is(-a,a,-b,b,min(min(z),max(max(z);surf(x,y,z);title(编写脚文文件示例);,2023/5/13,1.M文件脚本文件运行,第二步 单击编辑调试器中的保存图标,或者通过【file】菜单下的Save as将文件另存他处,键入文件名(如example21),单击【保存】键,就完成了文件保存。,第一步 将保存example21.m文件所在目录成为当前目录,或者让目录处在MatLab的搜索路径上。第二步 在命令窗口,输入example21,运行结果如下图所示。,运行脚本文件:,2023/5/13,1.M文件与M函数脚本文件结论,1)在M-file窗口中编
5、写脚本文件,并且每行必须以分号“;”结束;2)将已编写完成的M-file保存在某一文件夹中,并且使Matlab的搜索路径指向该M-file所在的文件夹;3)给M-file命名,文件不能使用汉语命名,必以字母或下划线开始的文件名;4)文件名需要能够反映出该M-file的功能和作用,并且容易记忆;5)运行M-file时,只需在命令窗口中输入M-file的文件名即可。,通过上述例子可得如下结论:,2023/5/13,1.M文件与M函数脚本文件举例,【举例】执行文件的建立与执行。,显示建立的执行文件,第一步 在脚本文件编辑器中输入左边程序,并存储命名为exam02.m。,2023/5/13,1.M文件
6、与M函数脚本文件举例,第二步 在Matlab平台上识别和执行文件exam02.m,在命令窗口中输入examo2.m。,输入命令显示,输出图线显示,2023/5/13,1.M文件与M函数M函数定义,不同于独立m文件,m函数形式的m文件书写格式为:函数名定义 functionA1,A2=myfuction(a1,a2,)%注释行 主程序体,例如:functiony,y1,y2=exam03(x),M函数的定义,2023/5/13,1.M文件与M函数M函数格式说明,(1)第一行为m函数格式行。function为m函数的保留字,myfunction为m函数名称,(a1,a2,)为外部传递参数组,A1,
7、A2为返回参数组。(2)首字符为“%”的各行是注释行。紧接格式行的各注释行可以响应help命令在MATLAB平台上印出,加空行后的注释行不响应help命令,注释行可以在m函数描述行的任意位置均可。(3)主程序体各行,是m函数的各执行行。,2023/5/13,1.M文件与M函数M函数的调用,M函数调用格式如下:输出变量=函数名(输入变量)示列如下:x=5;Ra=circle(x)(函数调用),2023/5/13,1.M文件与M函数M函数调用的注意点,注意以下几点:1)M函数名要与M函数存储的文件名相同;2)当一个M函数内含有多个函数时,函数内第一个function为主函数,其它函数是主函数局部调
8、用函数,文件名以主函数名命名;3)注释语句前需以“%”开始,若需要多行注释语句,每行都以“%”开始;4)M函数内除了注释说明语句行,最上面的第一行语句必须以function开始;5)程序语句包括调用函数、注程控制语句和赋值语句等;6)M函数调用时,调用函数的输入/输出变量可以与定义函数的输入/输出变量不同。,2023/5/13,1.M文件与M函数M函数程序,函数程序可以接受输入参数,并可以返回输出参数。同时也可操作函数工作空间的变量。,例如:通过M函数文件画圆,function Ra=circle(r,s)%r 指定半径的数值%s 指定线色的字符串%sa 指圆面积%circle(r)利用蓝实线
9、画半径为r的圆周线%circle(r,s)利用s字符串指定的线色画半径为r的圆周线%sa=circle(r)计算圆面积,并画半径为r的蓝色圆面%sa=circle(r,s)计算圆面积,并画半径为r的s色圆面,clf;t=0:pi/200:2*pi;x=r*exp(i*t);Ra=pi*r*r;fill(real(x),imag(x),s)axis(square)title(M函数程序画圆示例),2023/5/13,1.M文件与M函数全局变量和局部变量,M函数运行时,所有变量都被加载于函数工作空间,而且对于多个函数运行时,这些函数的工作空间是相互独立的,其变量也不会加载于MatLab的工作空间,
10、当函数运行结束后,所有的变量自动消失,这些变量称为局部变量。不过用户有时需要使用全局变量,便于函数之间的变量共用,此时需要使用Matlab里面的global命令对变量进行全局变量定义。,局部变量:具有函数内部作用范围全局变量:可在几个函数和基本工作空间之间共享,具有全局作用范围全局变量的声明:global 变量名1 变量名2 变量名间用空格分离。全局变量在使用前必须在MATLAB工作空间中申明,而在某个具体的MATLAB函数中如果想用到该全局变量时,也必须在函数中申明。由于全局变量损害函数的封闭性,因此不提倡使用全局变量。,2023/5/13,1.M文件与M函数M函数程序,第二步 运行以下命令
11、,结果如下图所示。,Ra=circle(3,r)Ra=28.2743。,2023/5/13,2.函数函数定义,把相关语句组合在一起,并给它们注明相应的名称,利用这种方法把程序分块,这种形式的组合就称为函数。函数通常也称为例程或过程。函数的使用通常是通过函数调用来实现的。对于用户自定义的函数也可以有子函数。这些子函数只能被与M文件同名的主函数或者在M文件的其他函数所调用。,2023/5/13,2.函数子函数,一个M文件只能有一个主函数。文件main.m中有一个函数结构及其子函数,示例如下:Function f=main(x)%主函数%程序语句Y1=funexample1(x)%调用第一个子函数%
12、程序语句f=funexample2(x)%调用第二个子函数%程序语句Function f=funexample1(x)%定义第一个子函数%程序语句Function f=funexample2(x)%定义第二个子函数%程序语句b,d=funexample3(x1,x2)%子函数中另外再调用第三个子函数(函数嵌套)%程序语句Function b,d=funexample3(x1,x2)%定义第三个子函数%程序语句,2023/5/13,2.函数私有函数,私有函数是放入一个叫private子目录中的M文件,私有函数只能private直接上层目录中的函数调用。当Matlab调用M文件中的函数时,首先查找
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机电系统与仿真技术 机电 系统 仿真技术 课件 MatLab 程序设计 文件
