文档详情

第四章 MATLAB的程序.doc

发布:2017-06-19约5.3千字共8页下载文档
文本预览下载声明
第4章 MATLAB程序设计 4.1脚本文件和函数文件 M文件有两种形式:M脚本文件和M函数文件。 脚本文件 对于一些比较简单的问题,从指令窗中直接输入指令进行计算是十分轻松简单的事。但随指令数的增加,或随控制流复杂度的增加,或重复计算要求的提出,直接从指令窗进行计算就显得烦琐。而此时脚本文件最为适宜。 M函数文件 与脚本文件不同,函数文件(Function file)犹如一个“黑箱”。从外界只看到:传给它的输入量和送出来的计算结果。而内部运作是藏而不见的。 4.1.1 M文本编辑器 MATLAB的M文件是通过M文件编辑/调试器窗口(Editor/Debugger)来创建的。 单击MATLAB桌面上的图标,或者单击菜单“File”——“New”——“M-file”,可打开空白的M文件编辑器,也可以通过打开已有的M文件来打开M文件编辑器。如图4.1所示为打开已创建的M文件。 4.1.2 M脚本文件 脚本文件的特点: (1) 脚本文件中的命令格式和前后位置,与在命令窗口中输入的没有任何区别。 (2) MATLAB在运行脚本文件时,只是简单地按顺序从文件中读取一条条命令,送到MATLAB命令窗口中去执行。 (3) 与在命令窗口中直接运行命令一样,脚本文件运行产生的变量都是驻留在MATLAB的工作空间(workspace)中,可以很方便地查看变量,除非用clear命令清除;脚本文件的命令也可以访问工作空间的所有数据,因此要注意避免变量的覆盖而造成程序出错。 【例4.1】在M文件编辑/调试器窗口中编写M脚本文件绘制二阶系统的多条时域曲线。 (1) 单击MATLAB桌面上的图标打开M文件编辑器。 (2) 将命令全部写入M文件编辑器中,为了能标志该文件的名称,在第一行写入包含文件名的注释。保存文件为Ex0401.m。 %EX0401 二阶系统时域曲线 x=0:0.1:20; y1=1-1/sqrt(1-0.3^2)*exp(-0.3*x).*sin(sqrt(1-0.3^2)*x+acos(0.3)) plot(x,y1,r) %画阻尼系数为0.3的曲线 hold on y2=1-1/sqrt(1-0.707^2)*exp(-0.707*x).*sin(sqrt(1-0.707^2)*x+acos(0.707)) plot(x,y2,g) %画阻尼系数为0.707的曲线 y3=1-exp(-x).*(1+x) plot(x,y3,b) %画阻尼系数为1的曲线 (3) 选择M文件编辑器菜单“Debug”——“Run”,就可以在图形窗中看到如图4.2所示的曲线。 查看工作空间的变量: whos Name Size Bytes Class x 1x201 1608 double array y1 1x201 1608 double array y2 1x201 1608 double array y3 1x201 1608 double array Grand total is 804 elements using 6432 bytes 4.1.3 M函数文件 函数文件的特点: (1) 第一行总是以“function”引导的函数声明行; ?函数声明行的格式: function [输出变量列表] = 函数名(输入变量列表)? (2) 函数文件在运行过程中产生的变量都存放在函数本身的工作空间; (3) 当文件执行完最后一条命令或遇到“return”命令时,就结束函数文件的运行,同时函数工作空间的变量就被清除; (4) 函数的工作空间随具体的M函数文件调用而产生,随调用结束而删除,是独立的、临时的,在MATLAB运行过程中可以产生任意多个临时的函数空间。 【例4.2】在M文件编辑/调试器窗口编写计算二阶系统时域响应的M函数文件,并在MATLAB命令窗口中调用该文件。 创建M函数文件并调用的步骤如下: (1) 编写函数代码 function y=Ex0402(zeta) %EX0402 画二阶系统时域曲线 x=0:0.1:20; y=1-1/sqrt(1-zeta^2)*exp(-zeta*x).*sin(sqrt(1-zeta^2)*x+acos(zeta)) plot(x,y) (2) 将函数文件保存为“Ex0402.m”。 (3) 在MATLAB命令窗口输入以下命令,则会出现f的计算值和绘制的曲线: f=Ex0402
显示全部
相似文档