书签 分享 收藏 举报 版权申诉 / 40
上传文档赚钱

类型《机电系统与仿真技术》课件8MatLab程序设计及M文件.ppt

  • 上传人(卖家):momomo
  • 文档编号:5900333
  • 上传时间:2023-05-14
  • 格式:PPT
  • 页数:40
  • 大小:2MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《《机电系统与仿真技术》课件8MatLab程序设计及M文件.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    机电系统与仿真技术 机电 系统 仿真技术 课件 MatLab 程序设计 文件
    资源描述:

    1、回顾:基础知识2023-5-14l矩阵生成l基本运算l矩阵运算l多项式l解方程l绘图命令表表1-3 3 字符串符号和曲线线型、色彩及坐标点型状对照表字符串符号和曲线线型、色彩及坐标点型状对照表曲线线型曲线线型曲线色彩曲线色彩坐标点型状坐标点型状线型符号线型符号含义含义色彩符号色彩符号含义含义点型状符号点型状符号含义含义-实线实线b b蓝色蓝色.点点-虚线虚线c c青色青色o o圆圆:点线点线g g绿色绿色*星号星号-.-.点划线点划线k k黑色黑色+加号加号x x叉号叉号m m深红色深红色s s方块方块r r红色红色d d菱形菱形y y黄色黄色p p五角星五角星w w白色白色h h六角星六角星

    2、2023-5-14 表表1-4 1-4 常用图形标识命令及其含义常用图形标识命令及其含义图形标识命令图形标识命令含义含义titletitle给出全图标注的标题给出全图标注的标题xlabelxlabel对对x轴标注名称轴标注名称ylabelylabel对对y轴标注名称轴标注名称texttext通过程序在图形的指定位置放入文本字符串通过程序在图形的指定位置放入文本字符串gtextgtext单击鼠标指定位置放入文本字符串单击鼠标指定位置放入文本字符串legendlegend在图形中添加注解在图形中添加注解gridgrid打开或关闭栅格打开或关闭栅格axisaxis坐标轴调整坐标轴调整holdhold

    3、图形保持图形保持zoomzoom图形缩放图形缩放2023-5-14 其他绘图指令特殊图形绘制命令特殊图形绘制命令函数命令函数命令功能功能函数命令函数命令功能功能areaarea填充区域图填充区域图histhist绘制累计图绘制累计图barbar绘制直方图绘制直方图stairsstairs绘制阶梯图绘制阶梯图compasscompass绘制复数矢量图绘制复数矢量图stemstem绘制针状图绘制针状图cometcomet绘制慧星曲线图绘制慧星曲线图piepie绘制饼图绘制饼图featherfeather绘制羽毛图绘制羽毛图quiverquiver绘制向量场图绘制向量场图fillfill填充颜色填充

    4、颜色roserose绘制极坐标累计图绘制极坐标累计图2023-5-14 三维绘图指令常用三维绘图函数命令常用三维绘图函数命令函数命令函数命令功能功能函数命令函数命令功能功能Plot3Plot3绘制三维曲线绘制三维曲线Bar3Bar3绘制三维直方图绘制三维直方图meshmesh绘制三维网线绘制三维网线Pie3Pie3绘制三维饼图绘制三维饼图surfsurf绘制三维曲面绘制三维曲面Stem3Stem3绘制三维离散针状图绘制三维离散针状图Colormap(RGB)Colormap(RGB)绘制三维图形装饰绘制三维图形装饰piepie绘制饼图绘制饼图viewview图形视觉角度图形视觉角度Contou

    5、r3Contour3绘制三维等高线图绘制三维等高线图cylindercylinder绘制柱面图绘制柱面图meshcmeshc绘制三维含等高线网线图绘制三维含等高线网线图2023-5-14 第2讲 Matlab程序设计及仿真目标与要求目标与要求:学生了解M文件和函数的基本概念,掌握程序设计的基本原则,能够对Matlab的M文件进行流程控制,能够进行面向对象的编程,并且对M文件能够调试与剖析。教学内容教学内容:1 M文件;2函数;3 Matlab程序设计基本原则;4流程控制;5文件调试与剖析。2023-5-14 1.M文件脚本文件概述 MATLAB语言的程序可以有两种方式来执行,即命令行方式和m文

    6、件方式。由于MATLAB语言的文件,以以“.m”作扩展名作扩展名,因此均称为m文件。M文件可分为函数程序和脚本程序两种:函数程序可以接受输入参数,并可以产生输出;脚本程序是MatLab表达式的集合,不可以接受参数。脚本文件是一种简单的M文件,它没有输入参数;可以是一系列在命令行中执行命令的集合,也可以是操作工作空间中的变量和程序中新建的变量。脚本程序在工作空间创建的变量,在程序运行结束后仍然可以使用。M脚本文件既不需要预先定义,也不需要接受输入变量,而是直接输入变量名,脚本程序就会按顺序执行命令。2023-5-14 1.M文件脚本文件编写1546.01197.0185.0,215.175.37

    7、5.0216215.175.35.02112122212212122xxexxexxexxfxxxxxxxx脚本文件编写步骤:脚本文件编写步骤:第一步 单击MatLab指令窗口工具条上的New File图标或者【file】菜单下new子菜单中的M-file,如下图所示。打开如图2-2所示的MatLab文件编辑调试器Matlab Editor/Debugger。其窗口名默认为Untitled,用户可在空白窗口中编写程序。2023-5-14 1.M文件脚本文件编写针对所给分段函数,输入如下一段程序:针对所给分段函数,输入如下一段程序:a=2;b=2;clf;%clf 函数用于清除当前图像窗口函数用

    8、于清除当前图像窗口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)x=5;Ra=circle(x)(函数调用)2023-5-14 1.M文件与M函数M函数调用的注意点注意以下几点:1)M函数名要与M函数存储的文件名相同;2)当一个M函数内含有多个函数时,函数内第一个function为主函数,其它函数是主函数局部调用函数,文件名以主函数名命名;3)注释语句前需以“%”开始,若需要多

    9、行注释语句,每行都以“%”开始;4)M函数内除了注释说明语句行,最上面的第一行语句必须以function开始;5)程序语句包括调用函数、注程控制语句和赋值语句等;6)M函数调用时,调用函数的输入/输出变量可以与定义函数的输入/输出变量不同。2023-5-14 1.M文件与M函数M函数程序函数程序函数程序可以接受输入参数,并可以返回输出参数。同时也可操作函数工作空间的变量。例如:通过M函数文件画圆 function Ra=circle(r,s)%r 指定半径的数值%s 指定线色的字符串%sa 指圆面积%circle(r)利用蓝实线画半径为r的圆周线%circle(r,s)利用s字符串指定的线色画

    10、半径为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-14 1.M文件与M函数全局变量和局部变量 M函数运行时,所有变量都被加载于函数工作空间,而且对于多个函数运行时,这些函数的工作空间是相互独立的,其变量也不会加载于MatLab的工作空间,当函数运行结束后,所有的变量自动消失,这些变量称为局部变量。不过用户有

    11、时需要使用全局变量,便于函数之间的变量共用,此时需要使用Matlab里面的global命令对变量进行全局变量定义。o局部变量:具有函数内部作用范围o全局变量:可在几个函数和基本工作空间之间共享,具有全局作用范围o全局变量的声明:global 变量名1 变量名2 变量名间用空格分离。o全局变量在使用前必须在MATLAB工作空间中申明,而在某个具体的MATLAB函数中如果想用到该全局变量时,也必须在函数中申明。o由于全局变量损害函数的封闭性,因此不提倡使用全局变量。2023-5-14 1.M文件与M函数M函数程序第二步 运行以下命令,结果如下图所示。Ra=circle(3,r)Ra=28.2743

    12、。2023-5-14 2.函数函数定义把相关语句组合在一起,并给它把相关语句组合在一起,并给它们注明相应的名称,利用这种方法把们注明相应的名称,利用这种方法把程序分块,这种形式的组合就称为函程序分块,这种形式的组合就称为函数。函数通常也称为例程或过程。数。函数通常也称为例程或过程。函数的使用通常是通过函数调用来实现的。对于用户自定义的函数也可以有子函数。这些子函数只能被与M文件同名的主函数或者在M文件的其他函数所调用。2023-5-14 2.函数子函数一个M文件只能有一个主函数。文件main.m中有一个函数结构及其子函数,示例如下:Function f=main(x)%主函数%程序语句Y1=f

    13、unexample1(x)%调用第一个子函数%程序语句f=funexample2(x)%调用第二个子函数%程序语句Function f=funexample1(x)%定义第一个子函数%程序语句Function f=funexample2(x)%定义第二个子函数%程序语句b,d=funexample3(x1,x2)%子函数中另外再调用第三个子函数(函数嵌套)%程序语句Function b,d=funexample3(x1,x2)%定义第三个子函数%程序语句2023-5-14 2.函数私有函数o私有函数是放入一个叫private子目录中的M文件,私有函数只能private直接上层目录中的函数调用。

    14、o当Matlab调用M文件中的函数时,首先查找子函数,再查找私有函数,最后再在Matlab的搜索路径中查找函数。这就意味着用户可以创建与Matlab函数同名的私有函数,并将其放入private子目录中,这样程序就能对它们进行调用。同时其他路径下的程序能调用和私有函数同名的M文件,但此时执行的是Matlab的函数。2023-5-14 3.M文件程序设计的基本原则为了便于广大读者熟练地使用MatLab软件进行程序设计,并且形成良好的编程习惯,在此将程序设计的基本原则简述如下:1)Matlab程序的基本组成。(1)%表示命令行注释;(2)采用clear、close命令清除工作空间变量;(3)定义变量

    15、,设置初始值;(4)编写运算指令、调用函数或调用子程序;(5)使用流程控制语句;(6)直接在指令窗口中显示运算结果或者通过绘图命令显示运算结果。2)一般情况下,主程序开头习惯使用clear命令清除工作空间变量,然而子程序开头不要使用clear。3)程序命名尽量清晰(从程序名就可知道该程序的功能),便于日后维护。初始值尽量放在程序的前面,便于更改和查看。4)如果初始值较长或者较常用,可以通过编写子程序将所有的初始值进行存储,以便调用。5)对于较大的程序设计,尽量将程序分解成每个具有独立功能的子程序,然后采用主程序调用子程序的方法进行编程。2023-5-14 4.流程控制与面向对象编程顺序结构Ma

    16、tlab程序语句结构:顺序、条件、循环、试探示例:求正弦函数的图像。x=-2*pi:pi/20:2*pi;y=sin(x);plot(x,y);title(Plot of sin(x)vs x);1)顺序结构定义格式2023-5-14 4.流程控制与面向对象编程条件结构12)if-else-end结构定义格式if else end语句有3种形式 if 表达式 执行语句 end if 表达式 是 语句1 else 否 语句2 end if 表达式表达式1 语句语句1 elseif 表达式表达式2 语句语句2 elseif 表达式表达式3 语句语句3 else 语句语句n end2023-5-14

    17、 4.流程控制与面向对象编程条件结构举例1 c=input(请输入一个字符,s);if c=A&c=a&c=0&c=9 disp(abs(c)-abs(0);else disp(c);end 举例举例:输入一个字符,若为大写字母,则输出其后继字符,若为小写字母,则输出其前导字符,若为数字字符则输出其对应的数值,若为其他字符则原样输出。2023-5-14 4.流程控制与面向对象编程条件结构23)Switch-case-end结构定义格式switch 开关表达式case 表达式1 语句段1 case表达式2 语句段2 .otherwise 语句段n end 说明:1)将开关表达式依次与case后面

    18、的表达式进行比较,如果表达式1不满足,则与下一个表达式2比较,如果都不满足则执行otherwise后面的语句段n;一旦开关表达式与某个表达式相等,则执行其后面的语句段。2)开关表达式只能是标量或字符串。3)case后面的表达式可以是标量、字符串或单元数组,如果是单元数组则将开关表达式与单元数组的所有元素进行比较,只要某个元素与开关表达式相等,就执行其后的语句段。2023-5-14 4.流程控制与面向对象编程条件结构举例2method=Bilinear;switch lower(method)%将字符串转换为小写 case linear,bilinear disp(Method is linea

    19、r)%显示 case cubic disp(Method is cubic)case nearest disp(Method is nearest)otherwise disp(Unknown method.)end2023-5-14 4.流程控制与面向对象编程循环结构14)For-end循环结构 首先首先计算三个表达式的值,再将表达式1的值赋给循环变量,如果此时循环变量的值介于表达式1和表达式3的值之间,则执行循环体语句,否则结束循环的执行。执行完一次循环之后,循环变量自增一个表达式2的值,然后然后再判断循环变量的值是否介于表达式1和表达式3之间,如果满足仍然执行循环体,直至不满足为止。这时

    20、将结束for语句的执行,而继续执行for语句后面的语句。for 循环变量=初始值first(也可是表达式1):步长incr(表达式2):终值last(表达式3)执行语句块end2023-5-14 4.流程控制与面向对象编程循环结构1举例举例举例:求定积分程序如下:a=0;b=2*pi;n=1000;h=(b-a)/n;x=a:h:b;f=exp(-0.5*x).*sin(x+pi/6);for i=1:n s(i)=(f(i)+f(i+1)*h/2;end s=sum(s)事实上,MATLAB提供了有关数值积分的标准函数,实际应用中可直接调用这些函数求数值积分。20.50sin6xexdx20

    21、23-5-14 4.流程控制与面向对象编程循环结构25)While-end循环结构while语句的一般格式为:while(条件)循环体语句块 end其执行过程为:若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立则跳出循环。2023-5-14 4.流程控制与面向对象编程循环结构2举例举例:用while循环求1100间整数的和。sum=0;i=1;while i=100 sum=sum+i;i=i+1;end sum=5050 2023-5-14 4.流程控制与面向对象编程试探结构6)试探结构定义语句格式为:try 语句组1catch 语句组2end说明说明:try语句先试探性执

    22、行语句组1,如果语句组1在执行过程中出现错误,则将错误信息保留,并转去执行语句组2。这种试探性执行语句是其他高级语言所没有的。2023-5-14 4.流程控制与面向对象编程试探结构举例举例:矩阵乘法运算要求两矩阵的维数相容,否则会出错。先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘。程序如下:A=1,2,3;4,5,6;B=7,8,9;10,11,12;try C=A*B;catch C=A.*B;endC=7 16 27 40 55 722023-5-14 5.文件调试与剖析文件调试概述一般来说,应用程序的错误有两类:一类是语法错误,语法错误包括词法或文法的错误,例如函数名的拼写错、表达

    23、式书写错等。另一类是运行时的错误。指程序的运行结果有错误,这类错误也称为程序逻辑错误。在包含函数调用的MATLAB 程序运行时,当发生运行错误时,不会显示出错信息,而在执行结束或出错时,我们只能看到基本工作空间(即主程序执行空间)中的变量,各个函数工作空间已关闭,因此无法检测各个局部变量。为此,应采用调试技术来查找问题。2023-5-14 5.文件调试与剖析文件调试技术 在可能发生错误的在可能发生错误的M 文件中,文件中,删去某些语句行末的分号删去某些语句行末的分号,使,使显示其显示其运行中间结果运行中间结果,从中可发现一些问题;,从中可发现一些问题;在在M 文件的适当位置上加上文件的适当位置

    24、上加上keyboard 命令,使在执行时在此暂停,命令,使在执行时在此暂停,从而检查局部工作空间中变量的内容,从中找到出错的线索,利用从而检查局部工作空间中变量的内容,从中找到出错的线索,利用return 命令可恢复程序的执行;命令可恢复程序的执行;去掉注释去掉注释M 函数文件的函数定义行函数文件的函数定义行,使函数文件转变成,使函数文件转变成命令文件命令文件,这样在程序运行出错时,可查看这样在程序运行出错时,可查看M 文件产生的中间变量;注意,局文件产生的中间变量;注意,局部变量之间应避免冲突;部变量之间应避免冲突;使用使用MATLAB 提供的提供的Debugger,Debugger 为我们

    25、提供了下列功能:为我们提供了下列功能:设置清除断点;设置清除断点;单步执行;单步执行;继续执行;继续执行;文件调试技术2023-5-14 5.文件调试与剖析文件调试步骤文件调试步骤第一步第一步:分段设置断点分段设置断点 一开始并不能肯定问题所在,我们总是按照执行顺序分一开始并不能肯定问题所在,我们总是按照执行顺序分段执行,以期望能够找到出错的程序段。为此在程序中段执行,以期望能够找到出错的程序段。为此在程序中设置断点,并执行程序:设置断点,并执行程序:第二步:清除断点第二步:清除断点第三步:调试嵌套函数第三步:调试嵌套函数第四步:单步执行第四步:单步执行第五步:修改并重新执行第五步:修改并重新

    26、执行 找到了问题所在,修改源程序并重新执行,如仍有问题,找到了问题所在,修改源程序并重新执行,如仍有问题,继续上述过程进行调试,直到程序执行正确。继续上述过程进行调试,直到程序执行正确。2023-5-14 5.文件调试与剖析文件调试命令文件调试命令 除了采用调试器调试程序外,除了采用调试器调试程序外,MATLAB还提供了一些命令用于程序还提供了一些命令用于程序调试。命令的功能和调试器菜单命令类似调试。命令的功能和调试器菜单命令类似 dbstop -Set breakpoint.dbclear -Remove breakpoint.dbcont -Resume execution.dbstack -List who called whom.dbstatus -List all breakpoints.dbstep -Execute one or more lines.dbtype -List M-file with line numbers.dbquit -Quit debug mode.2023-5-14 5.文件调试与剖析文件调试工具栏单步运单步运行行进入函进入函数数跳出函跳出函数数退出调退出调试试继续运继续运行行设置设置/取取消断点消断点取消所取消所有断点有断点2023-5-14

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:《机电系统与仿真技术》课件8MatLab程序设计及M文件.ppt
    链接地址:https://www.163wenku.com/p-5900333.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库