欢迎来到天天文库
浏览记录
ID:44271013
大小:699.50 KB
页数:159页
时间:2019-10-20
《matlab程序语言设计第4章》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第四章MATLAB程序设计4.1MATLAB程序设计初步4.2流程控制4.3用户参数交互输入4.4程序设计技术4.5MATLAB程序调试4.6语言结构与调试函数习题4.1MATLAB程序设计初步4.1.1脚本文件和函数文件定义MATLAB的M文件有两类:脚本文件和函数文件。我们将原本要在MATLAB环境下直接输入的语句,放在一个以.m为后缀的文件中,这一文件就称为脚本文件。有了脚本文件,可直接在MATLAB中输入脚本文件名(不含后缀),这时MATLAB会打开这一脚本文件,并依次执行脚本文件中的每一条语句,这与在MATLAB中直接输
2、入语句的结果完全一致。另一类M文件是函数文件,它的第一行必须是函数定义行。函数文件由五部分构成:●函数定义行。●H1行。●函数帮助文本。●函数体。●注释。例如,函数文件mean.m的内容为functiony=mean(x)函数定义行%MEANAverageormeanvalue.H1行%Forvectors,MEAN(X)isthemeanvalueofX.%Formatrices,MEAN(X)isarowvector.%containingthemeanvalueofeachcolumn.函数帮助文本[m,n]=size(x)
3、;ifm==1m=n;endy=sum(x)/m;函数体1.函数定义行functiony=mean(x)其中,function为函数定义的关键字,mean为函数名,y为输出变量,x为输入变量。当函数具有多个输出变量时,则以方括号括起;当函数具有多个输入变量时,则直接用圆括号括起。例如,function[x,y,z]=sphere(theta,phi,rho)。当函数不含输出变量时,则直接略去输出部分或采用空方括号表示,例如,functionprintresults(x)或function[]=printresults(x)。所有在
4、函数中使用和生成的变量都为局部变量(除非利用global语句定义),这些变量值只能通过输入和输出变量进行传递。因此,在调用函数时应通过输入变量将参数传递给函数;函数调用返回时也应通过输出变量将运算结果传递给函数调用者;在函数中产生的其它变量在返回时被全部清除。2.H1行在脚本和函数文件中,以%开头的行称为注释行,即%之后的字符不被MATLAB执行。在函数文件中,其第二行一般是注释行,这一行称为H1行,实际上它是帮助文本中的第一行。H1行不仅可以由helpfunction_name命令显示,而且lookfor命令只在H1行内进行搜索
5、,因此这一行内容提供了这个函数的重要信息。3.函数帮助文本这部分内容是以%开头的帮助文本,它用来比较详细地说明这一函数。当在MATLAB下输入helpfunction_name时,可显示出H1行和函数帮助文本。这部分文本从H1行开始,到第一个非%开头的行结束。4.函数体函数体是完成指定功能的语句实体,它可采用任何可用的MATLAB命令组成,它还可以包含MATLAB提供的函数和用户自己设计的M函数。5.注释注释行是以%开头的行,它可出现在函数文件的任意位置,也可以加在语句行之后,以便对语句行进行注释。在函数文件中,除了函数定义行和函
6、数体之外,其它部分都是可以省略的,不是必需的。但作为一个函数,为了提高函数的可用性,应加上H1行和函数帮助文本,为了提高函数的可读性,应加上适当的注释。4.1.2脚本文件和函数文件比较将函数文件去掉其第一行的定义行就转变成了脚本文件,但这样一来,原先在函数内部使用的局部变量也就变成了基本工作空间中的变量,这会带来以下几个问题:●基本工作空间与脚本文件中同名的变量会引起冲突。●使基本工作空间中变量数急剧增加,造成内存紧张。●编程时要细心考虑各个脚本文件所用到的变量。这些问题在函数文件中不复存在,MATLAB通过实参与形参一一对应的方
7、式来实现函数的调用,这极大地方便了程序设计。例如,编写出求取平均值的脚本文件stat1.m,再编写出求取标准差的函数文件stat2.m。程序如下:脚本文件stat1.m%脚本文件%求阵列x的平均值和标准差%[m,n]=size(x);ifm==1m=n;ends1=sum(x);s2=sum(x.^2);mean1=s1/m;stdev=sqrt(s2/m-mean1.^2);函数文件stat2.mfunction[mean1,stdev]=stat2(x)%函数文件%求阵列x的平均值和标准差%调用格式为%[mean,stdev]
8、=stat2(x)%[m,n]=size(x);ifm==1m=n;ends1=sum(x);s2=sum(x.^2);mean1=s1/m;stdev=sqrt(s2/m-mean1.^2);然后,在MATLAB下执行这两个文件,从而对脚本文件和
此文档下载收益归作者所有