程序设计教学PPT M文件.ppt
《程序设计教学PPT M文件.ppt》由会员分享,可在线阅读,更多相关《程序设计教学PPT M文件.ppt(28页珍藏版)》请在三一文库上搜索。
1、M文件,所谓M文件就是由matlab语言编写的可在matlab语言环境下运行的程序源代码文件。Matlab语言中的M文件可分为命令式(script)和函数式(function)两种形式。M文件可在matlab的程序编辑器中编写,也可在其他的文本编辑器中编写,并以“.m”为扩展名加以保存。 命令式文件 命令式文件就是命令行的简单叠加,matlab会自动按顺序执行文件中的命令。值得注意的是,命令式文件在运行过程中可以调用matlab工作域内所有的数据,而且所产生的所有变量均为全局变量。,回到本章目录,M文件就是由matlab语言编写的可在matlab语言环境下运行的程序源代码文件。Matlab语言
2、中的M文件可分为命令式(script)和函数式(function)两种形式。M文件可在matlab的程序编辑器中编写,也可在其他的文本编辑器中编写,并以“.m”为扩展名加以保存,这类文件的第一行必须是一特殊字符function开始,格式为: function y1,y2, =fun(x1,x2, ) fun是函数名,x1,x2, 是输入变量, y1,y2, 是输出变量。,M文件,M文件建立方法:1. 在MATLAB中,点:FileNew M-file 2. 在编辑窗口中输入程序内容 3. 点File Save,存盘,M文件名必须 与函数名一致.,MATLAB的应用程序也以M文件保存. 存储函数
3、式M文件时文件名要与主函数名相一致。,回到本章目录,第一行:函数声明行,function y = dfw1(r,p) res = r(1); p0 = p(1); y = -sum(res);,输出参数,函数名,输入参数,函数名要遵守Matlab变量名的命名规则, M函数存盘时的文件名与函数名相同。,从函数返回的惟一信息包含在输出参数中,要确保函数中包含一条给输出参数赋值的语句。,回到本章目录,函数式文件: function abcd(a,b) c=a+b d=b-a 保存为abcd.m 在工作窗口中调用: a=2;b=3,4,5,6; abcd(a,b) c = 5 6 7 8 d = 1
4、2 3 4 c %结果是什么?,命令式文件: a=2; b=3 4 5 6; c=a+b; d=b-a; 保存为:abcd.m 在工作窗口中调用: abcd %文件名即可 c c = 5 6 7 8 d d = 1 2 3 4,回到本章目录,函数变量及变量作用域 M文件的变量主要有输入变量、输出变量及函数内部变量。输入变量相当于函数的入口数据,是一个函数操作的主要对象。函数的作用就是对输入变量进行加工以实现一定的功能。函数的输入变量为形式参数,即只是传递变量的值而不是变量的地址,函数对输入变量的一切的操作和修改如果不依靠输出变量传出的话,将不会影响工作空间 中该变量的值。 matlab语言提供
5、了函数nargin来控制输入变量的个数,即可以实现不定参数输入的操作。 例如:在函数test1中,如果调用过程时只提供一个输入变量,则求该输入变量的模;如果是两个输入变量,则求两个输入变量的和,回到本章目录,%如果调用过程时只提供一个输入变量,则求该输入变量%的模; 如果是两个输入变量,则求两个输入变量的和 function c=test1(a,b) if nargin=1 c=norm(a); elseif nargin=2 c=a+b; end 在工作窗口调用: a=2 3 4 a = 2 3 4 test1(a) ans = 5.3852 b=3; test1(a,b) ans = 5
6、6 7,回到本章目录,同时,matlab语言还提供了另一个针对输入变量的函数varargin。该函数可以实现不定数目输入变量的函数的程序设计。此时,对函数的一切输入变量均将存储在以varargin命名的单元型数组中。 例:在函数test2中,实现如下功能: 通过使用函数varargin,用户可以输入任意多个学生的 数学、英语及语文的成绩,然后求各科目的平均值。 程序如下:,回到本章目录,function mathavg,englishavg,chineseavg=test2(varargin) s=length(varargin); %求数组的长度 mathsum=0; englishsum=
7、0; chinesesum=0; for j=1:s mathsum=mathsum+vararginj(1); englishsum=+vararginj(2); chinesesum=+vararginj(3); end mathavg=mathsum/s; englishavg=englishsum/s; chineseavg=chinesesum/s; 思考:此函数如何调用。,回到本章目录,与输入变量相对应,matlab语言对输出变量也提供了相应的函数,如nargout、varargout等。具体的使用与函数nargin和varargin相似。 下面给出一个综合应用示例。 示例函数te
8、st3中,综合使用了函数nargin、nargout、narargin、narargout等,函数目的是求各学生(总数不确定)的个人平均成绩,以及指定科目的平均成绩等。,函数test2的调用:90,89,60分别表示数学、英语、语文的成绩 a,b,c=test2(90,89,60,79,89,66,99,98,100) a = 89.3333 b = 32.6667 c = 33.3333 思考:如果多个学生的成绩是同一科目的成绩放在一个数组中,如何修改test2函数。,回到本章目录,function vararout=test3(lessons,varargin) inputnum=narg
9、in; lessonnum=length(lessons); outputnum=nargout; for i=1:lessonnum switch lessons(i) case math vararout1=sum(varargin1:inputnum(1); case english vararout2=sum(varargin1:inputnum(2); case chinese vararout3=sum(varargin1:inputnum(3); end end for i=1:inputnum varargouti+3=sum(varargini(:); end,回到本章目录,
10、在matlab中,函数内部定义的变量除特殊声明外均为局部变量。如果需要使用全局变量,则应当使用命令global定义,而且在任何使用该全局变量的函数中都应加以定义,在命令窗口中也不例外。 注意:变量之间必须以空格分隔,而不能用逗号分隔。 示例:,function avgs=test4(A) global s ss %定义全局变量 m,n=size(A); for i=1:m s(i)=sum(A(i,:); end ss=sum(s); avgs=ss/(m*n);,调用test4: a=4 3 5;6 7 8;3 5 7;1 3 4; test4(a) ans = 4.6667 global
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计教学PPT M文件 程序设计 教学 PPT 文件
链接地址:https://www.31doc.com/p-3841440.html