如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
实验M文件及MATLAB程序设计与调试一、实验目的全面掌握在MATLAB下进行程序设计的有关问题,具体涉及到M脚本文件和M函数文件的编写、全局和局部变量的使用、流程控制结构、提高程序执行效率的设计技术、程序调试等问题。二、实验内容1、关于M脚本文件和M函数文件MATLAB的M文件有两类:脚本文件和函数文件。(1)脚本文件——将原本要在MATLAB的指令窗口中直接输入的语句,放在一个以.m为后缀的文件中,这一文件就称为脚本文件。有了脚本文件,可直接在MATLAB中输入脚本文件名(不含后缀),这时MATLAB会打开这一脚本文件,并依次执行脚本文件中的每一条语句,这与在MATLAB中直接输入语句的结果完全一致。(2)函数文件——它的第一行必须是函数定义行。注意:在函数文件中,除了函数定义行之外,其它部分都是可以省略的。但作为一个函数,为了提高函数的可用性,应加上H1行和函数帮助文本,为了提高函数的可读性,应加上适当的注释M函数文件由5部分构成:◆函数定义行◆H1行◆函数帮助文本◆函数体◆注释functiony=mean(x)%MEANAverageormeanvalue.%Forvectors,MEAN(X)isthemeanvalueoftheelementsinX.%Formatrices,MEAN(X)isarowvectorcontainingthemean%valueofeachcolumn.[m,n]=size(x);ifm==1%Determinewhetherxisavectorm=n;endy=sum(x)/m;○函数定义行:functiony=mean(x)function为函数定义的关键字,mean为函数名,y为输出变量,x为输入变量当函数具有多个输出变量时,则以方括号括起;当函数具有多个输入变量时,则直接用圆括号括起。例如:function[x,y,z]=sphere(theta,phi,rho)当函数不含输出变量时,则直接略去输出部分或采用空方括号表示例如:functionprintresults(x)或function[]=printresults(x)所有在函数中使用和生成的变量都为局部变量(除非利用global语句定义),这些变量值只能通过输入和输出变量进行传递。因此,在调用函数时应通过输入变量将参数传递给函数;函数调用返回时也应通过输出变量将运算结果传递给函数调用者;其它在函数中产生的变量在返回时被全部清除。○H1行:描述了函数的“功能”信息(很重要!)函数文件中第二行一般是注释行,这一行称为H1行,实际上它是帮助文本中的第一行。H1行不仅可以由helpfuntion-name命令显示,而且,lookfor命令只在H1行内搜索,○函数帮助文本:用来比较详细地说明这一函数的用法以%开头,输入时helpfuntion-name命令,可显示出H1行和函数帮助文本○函数体:完成指定功能的语句实体可采用任何可用的MATLAB命令,包括MATLAB提供的函数和用户自己设计的M函数。○注释★备注:○函数定义名和保存文件名必须一致。两者不一致时,MATLAB将忽视文件首行的函数定义名,而以保存文件名为准;○函数文件的名字必须以字母开头,后面可以是字母、下划线以及数字的任意组合,但不得超过63个字符;○建议在编写H1行时,采用英文表达。这样处理是为了以后关键词检索方便。(3)脚本文件和函数文件比较脚本文件函数文件定义行无需定义行必须有定义行输入/输出变量无有数据传送直接访问基本工作空间中的所有变量通过输入变量获得输入数据;通过输出变量提交结果编程方法直接选取MATLAB中执行的语句精心设计完成指定功能用途重复操作MATLAB功能扩展函数文件去掉其第一行的定义行,就转变成了脚本文件。但这样一来使用的局部变量就成了基本工作空间中的变量,这会带来几个问题:◆基本工作空间中与脚本文件中同名的变量会引起冲突◆使基本工作空间中变量数急剧增加,造成内存紧张◆编程时要细心考虑各个脚本文件所用到的变量这些问题在函数文件中不复存在,MATLAB通过实参与形参一一对应的方式来实现函数的调用,这极大地方便了程序设计。举例说明:分别编写出求取平均值与标准差的脚本文件stat1.m和函数文件stat2.mstat1.mstat2.mfunction[mean1,stdev]=stat2(x)%函数文件%求阵列x的平均值和标准差[m,n]=size(x);ifm==1m=n;ends1=sum(x);s2=sum(x.^2);mean1=s1/m;stdev=sqrt(s2/m-mean1.^2);%脚