MATLAB 5-1 第4章程序设计初步.ppt_第1页
MATLAB 5-1 第4章程序设计初步.ppt_第2页
MATLAB 5-1 第4章程序设计初步.ppt_第3页
MATLAB 5-1 第4章程序设计初步.ppt_第4页
MATLAB 5-1 第4章程序设计初步.ppt_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Matlab SDU,1,第4章,Matlab的初步程序设计,并简要介绍了matlab SDU,2,m文件。如果用户想灵活运用MATLAB解决实际问题,充分利用MATLAB的科技资源,就需要编辑M文件,M文件包含MATLAB语言代码,称为M文件,扩展名为M。可以使用各种文本编辑器编辑M文件。Matlab SDU,3,1,Matlab的工作模式,指令驱动模式matlab通常工作在指令驱动模式,即当用户在matlab窗口中输入单行指令时,matlab立即处理指令并显示结果,这就是MATLAB命令行模式。当在命令行上操作时,matlab窗口一次只允许在一行上执行一个或几个语句。MATLAB SDU,

2、4,例如:x1=0:10 X11=01234567 8 9 10 x2=0:336011 x2=0369 x3=11.53360-:0 x3=11.5000 8.5000 5.5000 2.5000,Matlab sdu,5,x1=0:10,x2=0333333333330这种工作模式称为程序文件模式。程序文件不能在指令窗口下创建,因为指令窗口一次只允许执行一行中的一个或几个语句。MATLAB SDU,7,2,m文件的创建,m文件的类型是普通的文本文件,我们可以使用系统认可的文本文件编辑器来创建m文件。例如各种编辑编辑器、记事本和窗口中的文字等。具体创建方法:点击文件菜单新建m-file,ma

3、tlabsdu,8,matlabsdu,9,matlabsdu,10,2。单击文件将工作区另存为,将工作区中的内容保存到文件中。*使用各种编辑编辑器编辑编译m文件。编辑用matlab编辑器编译M文件。Word用word编辑m个文件。文件编辑器的设置可以通过在matlab命令窗口的选项菜单下点击编辑首选项来选择文件编辑器。matlab sdu,11,m文件编辑器的默认设置是matlab编辑器,其他文本编辑器可以从文件、首选项编辑器/调试器中设置。注意:创建的m文件必须包含在matlab搜索路径中,然后才能在MATLAB命令窗口中运行。matlab SDU,12,matlab搜索路径设置matla

4、b默认路径为c:matlabbin。使用路径工具路径浏览器设置当前目录“文件”-“设置路径”方法设置当前目录,matlab SDU,13,2,matlab文件类型,数据文件。mat mat文件是由MATLAB以标准二进制格式保存的数据文件,可以在工作空间中保存有用的数据变量。Mat文件由保存和加载函数生成和调用。MATLAB SDU,14,2。m文件m文件的语法类似于c语言,但它有自己的特点。它只是一个简单的ASCII文本文件,当执行程序时,它一行一行地解释运行的程序。matlab是一种解释性编程语言。有两种独立类型的M文件称为命令文件,脚本可以调用M文件称为函数文件,MATLAB SDU,1

5、5,和脚本文件。命令文件简单的M文件命令文件实际上是一系列指令的集合,其结果与在命令窗口中逐行执行文件中的所有指令是一样的。没有输入和输出参数。脚本本身反映了这样一个事实,即MATLAB只根据文件中的指令执行。m脚本(命令)文件组成简单,其特点是它只是一系列按照用户意图排列的MATLAB指令集(包括流向控制指令)。脚本文件运行后,所有生成的变量都驻留在MATLAB基本工作空间中。只要清除命令没有用于清除这些变量,并且MATLAB命令窗口没有关闭,这些变量将始终存储在基本工作空间中。随着MATLAB的诞生,基本工作空间应运而生。只有当MATLAB关闭时,基本空间才会被删除。MATLAB SDU,

6、16,M函数文件,它不同于脚本(命令)文件,就像一个“黑盒”。从外部,我们只能看到输入和计算结果发送给它,而内部操作是隐藏的。MATLAB SDU,17,函数文件的特性:从形式上看,与脚本文件不同,函数文件的第一行总是由“函数”引导的“函数声明行”。该行还列出了与外界联系的函数的所有“标称”输入和输出量。但是,对“输入/输出数量”的标称数量没有限制,也就是说,根本没有输入/输出数量或任何数量。MATLAB允许使用比“标称数”更少的输入和输出来实现函数调用。从运行的角度来看,不同于脚本文件的运行,每当函数文件运行时,MATLAB都会为其创建一个临时的工作空间,称为函数工作空间。所有中间变量都存储

7、在函数工作空间中。当文件的最后一条指令被执行或遇到返回时,函数文件的运行结束,临时函数空间及其所有中间变量立即被清除。函数空间在调用特定的m函数文件时生成,在调用结束时删除。功能空间是相对独立和暂时的。在MATLAB的整个运行期间,可以生成任意数量的临时函数空间。如果在函数文件中调用脚本文件,则脚本文件生成的所有变量都存储在函数空间中,而不是基本空间中。MATLAB SDU,18,function m文件格式:function return variable=function name(input variable)备注语句段程序语句段特定规则:function m文件的第一行必须以funct

8、ion一词作为引导词,它必须遵循以下形式:function=()m文件的文件名必须是. m。程序中的变量都是局部变量,不存储在工作空间中。其变量仅在函数运行期间有效。MATLAB SDU,19,M函数文件示例,函数sa=圆(r,S)%圆在S指定的直线上绘制半径为r的圆,% r指定半径为% S的数值指定线条颜色的字符串%sa圆面积%圆(r)用蓝色实线绘制半径为r的圆。%圆(R,S)画一条半径为R % SA=圆(R)的圆形线,和一个半径为R % SA=圆(R,S)的蓝色圆形面,并画一个半径为R %的S色圆形面,写于2001年4月7日,2002年8月27日修改。如果nargin2错误(输入太多。);

9、结束;如果NAR gin=1s=b;结束;MATLAB SDU,20,函数声明行:位于函数文件的第一行,以MATLAB关键字Function开始,函数名和函数的输入输出量在这一行定义。MATLAB SDU,21,H1行(第一个帮助文本行):第一个注释行以%开头,紧接在函数声明行之后。根据MATLAB自己文件的规则,H1行包含:函数文件名大写;使用关键词简要描述功能。这条H1线用于搜索关键词查询和帮助在线帮助。MATLAB SDU,22,在线帮助文本区:H1行和所有后续注释行以%开始构成整个在线帮助文本。它通常包括:函数输入输出量的含义,以及调用格式的描述。MATLAB SDU,23,编写和修改

10、记录:该记录与在线帮助文本区域用一个空行隔开,以%开头,表示编写和修改m文件的作者、日期和版本记录。它用于软件文件管理。MATLAB SDU,24,函数体):为清晰起见,它与前面的注释行之间用一个空行隔开。该部分由MATLAB指令组成,实现了M函数文件的功能。它接收输入数据并控制程序流以获得输出数据。为了便于阅读和理解,还配置了适当的空行和注释。从操作的角度来看,只有函数声明行和函数体是形成M函数文件所必需的。,MATLAB SDU,25,函数r=秩(,tol)%秩矩阵秩。% RANK(A)提供了矩阵A的线性%独立行或列的数量的估计值,% RANK(A,tol)是大于tol的A %的奇异值的数

11、量。% RANK(A)使用默认公差=最大(尺寸(A) *标准(A) * eps。% %类别支持输入: %浮动:双,单%版权所有1984-2004 MathWorks,Inc . % $ Revision : 5.11.4.2 $ $ Date : 2004/04/10 23:30:08 $ s=SVD(A);如果nargin=1 tol=最大(尺寸(A) * eps(最大(s);结束r=总和(s tol);程序部分,matlab SDU,26,matlab内置函数文件,matlab自定义函数文件,称为内置函数文件。调用内置函数的方法是使用函数名并给出相应的入口和出口参数。例如:函数调用格式:y

12、=sin(2*x)在实际应用中:x=0:2 * pi/180:2 * pi;Y=sin (2 * x)图(x,y)和m函数文件分为两类:内置和自定义,MATLAB SDU,27,和sqrt(x)求x的平方根,abs(x)求x的绝对值,det(a)求行列式值,等等。Matlab有大量内置的数学函数,我们可以调用它们进行数值运算和符号运算。Matlab SDU,28,二函数m文件需要输入变量和返回输出变量。MATLAB用户可以根据自己的需要编辑自己的m文件,可以像调用库函数一样方便,从而大大扩展了MATLAB的功能。对于一些特殊的问题,例如创建许多M函数文件,可以形成一个新的工具箱。用matlab

13、语言创建和定义新的matlab函数的功能体现了matlab语言强大的扩展功能。MATLAB SDU,29,M函数类型,I函数句柄,以及函数句柄都不是用函数文件自动形成的文件“属性”,而是只能通过特殊定义生成。定义函数句柄有两种方法:使用符号;* *使用转换函数str2func。为了观察函数句柄的内涵,应该使用特殊的指令函数。示例:为MATLAB的“内置”函数创建一个函数句柄,并观察其内涵。辛=罪;%(1)创建类(辛)%(2)类型判别CC=函数(辛)%(3)借助指令观察内涵函数,matlab SDU,30,函数句柄是matlab独特的语言结构。本发明的优点是:方便实现函数间的相互调用,兼容函数加

14、载的所有模式,拓宽了包括局部函数在内的子函数的应用范围,提高了函数调用的可靠性,减少了程序设计中的冗余,提高了重复执行的效率,并结合定义数据,MATLAB SDU,31,函数句柄,根据内置函数,创建函数句柄FUNHANDLE=FUNCTION_NAME匿名函数,创建函数句柄FUNHANDLE=(ARGIST)EXPRESSion。如果函数句柄不包含任何参数,后一个列表必须用空括号表示,并且调用也必须使用空括号。这个例子通过函数及其句柄演示了一些基本用法。%(1)创建函数句柄FH handle=str func(sin);%(2)SIN(pi/4)中函数句柄的情况“数值计算”ys=sin(pi/4)%函数直接调用“老式”YFLOWN=FEVAL(fHandle,pi/4)指令的YFLOWD=FEVAL(SIN,PI/4)指令,“新式”调用% %定义符号常量yss=sin(alpha)%函数直接调用YFLOWD=FEVAL(SIN,Alpha)指令的“老式”调用YFLOWS=FEVAL(fHandle,Alpha)指令的“新式”调用Xold=fmin band(sin,0,2*pi)%“旧式”函数指令调用Xnew=fmin band(fhhandle,0,2*pi)%“新式”函数指令调用,MATLAB SDU,33,M函数类型,II主函数和子函数的多种函数代码,第一种是主函数,其

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论