MATLAB基础教程 教学课件 ppt 作者 杨德平 第7章 M文件

上传人:E**** 文档编号:89242306 上传时间:2019-05-21 格式:PPT 页数:31 大小:495.01KB
返回 下载 相关 举报
MATLAB基础教程 教学课件 ppt 作者 杨德平 第7章  M文件_第1页
第1页 / 共31页
MATLAB基础教程 教学课件 ppt 作者 杨德平 第7章  M文件_第2页
第2页 / 共31页
MATLAB基础教程 教学课件 ppt 作者 杨德平 第7章  M文件_第3页
第3页 / 共31页
MATLAB基础教程 教学课件 ppt 作者 杨德平 第7章  M文件_第4页
第4页 / 共31页
MATLAB基础教程 教学课件 ppt 作者 杨德平 第7章  M文件_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《MATLAB基础教程 教学课件 ppt 作者 杨德平 第7章 M文件》由会员分享,可在线阅读,更多相关《MATLAB基础教程 教学课件 ppt 作者 杨德平 第7章 M文件(31页珍藏版)》请在金锄头文库上搜索。

1、第7章 M文件,7.1 M文件结构,7.2 其它函数类型,7.3 函数变量与空间,7.4 综合实例,7.1 M文件结构,2.1.1 常量,1建立新脚本M文件 在MATLAB的编辑器中建立新脚本文件的方法有: (1)在MATLAB命令窗口中,选择菜单“Fine”“New”“Script”命令,或者单击工具栏上的图标 ,或者键入edit命令,都可打开空白的脚本M-文件编辑器,如图7-1所示。,首页,图7-1 脚本M文件编辑器窗口,(2)如果已经打开了文件编辑器窗口(见图7-1)后需要再建立新脚本文件,可以用编辑器窗口的菜单(Fine)或工具栏上相应的图标 进行操作。,(3)在MATLAB命令窗口输

2、入edit filename命令,回车后出现提示框,如图7-2所示。,首页,图7-2 新建脚本M文件提示窗口,点击“Yes”,则建立一个名为filename的新脚本M文件,如图7-3所示。,图7-3 建立有文件名的脚本M文件,M文件在运行之前必须先保存。其方法有: (1)单击编辑器工具栏上的存盘图标 。对于新建的M文件,则弹出“Select File for Save as”对话框(如图7-4所示),选择存放的路径、文件名和文件保存类型(.m),单击“保存”按钮,即可完成保存;对于打开的已有M文件,则直接完成保存。,2保存文件,图7-4 保存M文件,(2)选择菜单栏中的“File”“save”

3、,打开对话框(同图7-4),其作用等同于(1); (3)选择菜单栏中的“File”“save as”,对于新建的M文件,其作用等同于(2);对于打开的已有M文件,可以在弹出“Select File for Save as”对话框中,重新选择存放的路径、文件名进行保存。,首页,3运行文件 脚本函数可以直接运行, 其方法有: (1)在命令窗口中输入要运行的文件名即可开始运行该脚本M文件。 (2)如果在编辑器中完成编辑后需要直接运行,可以选择编辑器的菜单“Debug”下的子菜单“Save File and Run”(如果文件已经保存过,该选项则变为“Run Filename.m”)。 (3)按编辑器

4、工具栏上的图标 ,可以进行保存程序并直接运行。,实际上在上面的脚本文件编辑窗口中,我们也可以编写函数M文件,较早的MATLAB版本都是这样做的。但在MATLAB R2012a版本中,将脚本文件和函数文件分开,并且函数文件中已给出开头、结尾语句。,首页,4新建函数M文件,(1)在MATLAB命令窗口中,选择菜单“Fine”“New”“Function”命令,即可打开函数M文件编辑窗口,如图所示。,(2)对于函数文件保存,在点击工具栏中的存盘命令时,文件名是自动生成的,即原先设置的函数名,直接点击“保存”即可。,(3)对函数文件的运行必须输入函数参数。,7.1.2 脚本M文件,首页,脚本文件是命令

5、的集合,是由一系列MATLAB命令、内置函数及M文件等组成的文件。它是M文件中最简单的一种,不需要输入、输出参数,用命令语句可以控制MATLAB命令工作空间的所有数据。在运行过程中,产生的所有变量均是命令工作空间变量,这些变量一旦生成,就一直保持在内存空间中,除非用户执行clear命令将它们清除。 运行一个脚本文件等价于从命令窗口中顺序运行文件里的语句。由于脚本文件只是一串命令的集合,因此,只需像在命令窗口中输入语句那样,依次将语句编辑在脚本文件,然后在MATLAB命令窗口输入该命令文件的名字就会顺序执行命令文件中的命令。,【例7-1】建立一个文件名为average1的脚本文件,要求计算向量元

6、素的平均值,并求出数1到100之和。,首页,(1)首先建立脚本文件并以文件名average1.m 保存。 x=input(输入向量:x=); m,n=size(x); if (m=1)|(n=1)|(m=1)&(n=1) %判断输入是否为向量 error(必须输入向量。) end E=sum(x)/length(x) %计算向量x所有元素的平均值E (2)在MATLAB的命令窗口中输入average1,将会执行该脚本文件。 average1,运行结果如下: 输入向量:x=1:100 %用户自己输入1:100 E = 50.5000,7.1.3 函数M文件,首页,函数M文件是第一个可执行语句以f

7、unction开始的M文件,每一个函数文件都定义一个函数,它可以接受参数、也可以返回参数。 格式 function 输出变量组=函数名(输入变量组) 注释说明部分 函数体 end,说明 (1) 一个完整的函数M文件包括如下部分:, 函数定义行。它必须由关键词function开头,紧跟着是函数的输出变量(组)。 帮助文本的标题行,简称H1行(即Help的第一行),是第一个注释行。 帮助文本的内容。是以“%”开头的帮助文本. 函数体。包含了全部用于完成由输入变量计算到输出变量的程序体。 注释:以“%”起始到行尾结束的部分为注释部分,它可以放在程序任何位置,可以单独占一行,也可以在一个语句之后。 结

8、束语。MATLAB R2012a版本中,函数文件结束时,增加了“end”语句作为最后一行(MATLAB较老版本没有此语句),增强了程序的可读性。,(2)函数M文件名必须与函数名一致。 (3)函数M文件调用时,函数输入和输出可以与函数定义的变量不相,首页,例如,查看计算平均值函数文件mean的程序,只需在命令窗口输入: type mean 则显示内容如下: function y = mean(x,dim) 函数定义行 %MEAN Average or mean value. H1行 以下13行都是帮助文本 % For vectors, MEAN(X) is the mean value of t

9、he elements in X. For % matrices, MEAN(X) is a row vector containing the mean value of % each column. For N-D arrays, MEAN(X) is the mean value of the % elements along the first non-singleton dimension of X. % MEAN(X,DIM) takes the mean along the dimension DIM of X. % Example: If X = 1 2 3; 3 3 6; 4

10、 6 8; 4 7 7; % then mean(X,1) is 3.0000 4.5000 6.0000 and % mean(X,2) is 2.0000 4.0000 6.0000 6.0000. % Class support for input X: % float: double, single % See also MEDIAN, STD, MIN, MAX, VAR, COV, MODE. % Copyright 1984-2009 The MathWorks, Inc.,% $Revision: 5.17.4.5 $ $Date: 2010/09/02 13:35:22 $

11、以下部分是函数体 if nargin=1, % Determine which dimension SUM will use dim = find(size(x)=1, 1 ); if isempty(dim), dim = 1; end y = sum(x)/size(x,dim); else y = sum(x,dim)/size(x,dim); end,首页,【例7-2】编写函数文件average2计算向量元素的平均值,并求出数1到100之和。 (1)建立函数文件。 function y=average2(x) %函数average2(x)用以计算向量元素的平均值 %输入参数x为输入向量

12、 %输出参数y为计算的平均值 %非向量输入将导致错误 %例如 %时间2012.06,首页,m,n=size(x); %判断输入量的大小 if (m=1)|(n=1)|(m=1)&(n=1) %判断输入是否为向量 error(必须输入向量。) end y=sum(x)/length(x) %计算向量x所有元素的平均值y end 将文件存盘,默认状态下函数名为average2.m(文件名与函数名相同)。,(2)在MATLAB命令窗口中输入: x=1:100; y=average2(x) 运行结果如下: y = 50.5000 我们在MATLAB命令窗口中,可以查找函数average2信息,输入命令

13、: help average2 运行结果如下: 函数average2(x)用以计算向量元素的平均值 输入参数x为输入向量 输出参数y为计算的平均值 非向量输入将导致错误 例如 时间2012.06,7.2 其它函数类型,首页,7.2.1 内联函数 格式 F=inline(expr, x1, x2, xn) 说明 expr表示以字符串形式的数学表达式;x1,x2,xn表示expr中的变量。,(1)内联函数的数值计算。 【例7-3】 y=inline(x*exp(x)+sin(x),x) y = Inline function: y(x) = x*exp(x)+sin(x) y(pi) ans =

14、72.6986,(2)内联函数的数组运算。 【例7-4】 F1=inline(sin(r)/r) F1 = Inline function: F1(r)=sin(r)/r F2=vectorize(F1) F2 = Inline function: F2(r)=sin(r)./r x=pi/4, pi/2, 3*pi/4, pi; F3=F2(x) F3 = 0.9003 0.6366 0.3001 0.0000,(3)内联函数的向量输入和输出。 【例 7-5】 Y2=inline(x(1)2; 3*x(1)*sin(x(2) argnames(Y2) Y2 = Inline function

15、: Y2(x) = x(1)2; 3*x(1)*sin(x(2) ans = x x=4, pi/6; y2=Y2(x) y2 = 16.0000 6.0000,(4)内联函数可被feval 指令调用。 【例 7-6】 Z2=inline(P1*x*sin(x2+P2),2) %最后面的2,代表输入变量P1、P2的个数 Z2 = Inline function: Z2(x,P1,P2) = P1*x*sin(x2+P2) z2=Z2(2,2,3) fz2=feval(Z2,2,2,3) z2 = 2.6279 fz2 = 2.6279,7.2.2 匿名函数,格式 fhandle=(arglist)expr 说明 fhandle是为该函数创建的函数句柄,符号用于创建函数句柄;arglist是一些由逗号分隔的输入参数,这些参数将被传输到函数;expr是函数的主体,它由执行语句组成。,【例7-7】匿名函数举例。 (1)没有输入参数的匿名函数,只需用空格代替arglist即可。 t=()datestr(07/11/2012) t = ()datestr(07/11/2012) t() ans = 11-Jul-2012,(2)有一个输入参数的匿名函数。 y=(x)exp(-x2); y(0) ans

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号