预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共46页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第五章本节内容§1M文件-脚本文件例:计算小于任意自然数n的fibonnaci数。函数文件以function开头的一行为引导行,是函数定义语句,表示该M文件是一个函数文件。帮助文本的首行(H1行):用于help帮助使用和lookfor搜索帮助文本:指H1行之后到函数体之前的注释行。包括函数的意义、各参数的意义、调用格式以及程序的作者、日期等。函数体是函数的执行代码,是文件主要部分。注释:以%开头,可出现在程序中任意一行,用绿色表示。编译时会被忽略,不会影响程序运行速度。例:编写函数计算两点之间的距离。当函数的输出参数多于一个时,应该用方括号括起来,并以逗号隔开;传递给函数的变量不必与函数定义行中的参数同名;函数和文件的命名规则与变量命名规则相同;若保存的文件名与函数名不同,则在调用时必须使用文件名。建议:函数名与文件名应一致(系统默认)函数文件运行时,MATLAB会专门为其开辟一临时工作空间(函数空间),所有变量都存放于此。文件运行完毕后,该临时空间以及所有中间变量就立即被清除;函数空间随函数文件的调用而产生,随调用而结束;函数文件的变量除特别声明外均是局部变量函数运行-调用脚本文件和函数文件的区别1)以ffib.m为名存盘2)MATLAB命令窗口输入命令:>>ffib(1000)即可求小于1000的Fibonacci数。递归调用:函数调用其本身§2函数操作函数参数数目的可调性输入/输出参数的可变性错误处理局部变量和全局变量其他函数类型函数句柄[y1,y2,…]=feval(FH,arg1,arg2,…)-执行函数句柄FH指定的计算§3文件操作文件的关闭文件的读和写fwrite是按照指定的数据精度将矩阵中的元素写入到文件中;fread用于读取二进制文件的数据,并将数据存入矩阵中。fwrite按照指定的数据精度将矩阵中的元素写入到文件中A:用来存放写入文件的数据;precision:数据精度,char/int/double/float等;count:返回所读取的数据元素个数;size:数据A的尺寸,N表示读N个元素到一个列向量,inf表示读取整个文件,[M,N]表示读数据到M×N矩阵中,数据按列存放;fprintf将数据按照指定的格式写入到文件fp中count:数据元素个数format:数据格式。%d整数,%f浮点数,%s字符串详情请见MATLAB帮助文件§4程序的调试将可能出错的语句后面的分号去掉,显示中间结果;利用disp函数显示中间变量的值在程序的适当位置添加keyboard语句。当程序运行至此时将暂停(在指令窗中显示k>>提示符),用户可以查看工作区中的变量,也可改变变量的值。当输入return指令时返回程序,继续运行。程序的暂停:采用pause函数可以暂停程序,直到用户按任一键程序才继续执行。若要强行中止程序的运行,可用ctrl+c。调试一个单独的函数时,可将函数改写为脚本文件,此时可直接对输入参数赋值,然后以脚本方式运行该M文件;使用调试器可以准确地找到运行错误。通过设置断点可使程序运行到某行暂停,查看和修改工作空间中的变量;也可以逐行运行程序,对执行流程进行完全监控。调试器DebugDebug菜单项Run(F5):从头开始执行程序,直到遇到一个端点或程序结束;RuntoCursor:从当前位置运行到光标处;ExitDebugMode:退出调试工具,同时结束调试过程和程序运行过程。Set/ClearBreakpoints(F12):设置或清除光标所在行的断点ClearallBreakpoints:清除所有断点调试方法步骤单步执行各语句:此时可查看各变量的内容,以判断程序流程是否正确。因collatz.m程序需要输入参数n,故查看输出结果不能用Run命令,而需在指令窗中输入>>collatz(5)§6.5程序的优化clearvr=[0.89,1.20,3.09,4.27,3.62,7.71,8.99,7.92,9.70,10.41];ir=[0.028,0.040,0.100,0.145,0.118,0.258,0.299,0.257,0.308,0.345];L=length(vr)%计算数组的长度fork=1:Lr(k)=vr(k)/ir(k);%根据各测量点计算电阻endsr=0;fork=1:Lsr=sr+r(k);%计算所有电阻之和endrm=sr/L%计算电阻平均值clearvr=[0.89,1.20,3.09,4.27,3.62,7.71,8.99,7.92,9.70,10.41];ir=[0.028,0.040,0.100,0.145,0.118,0.258,0.299,0.257,0.308,0.345];r=vr./ir%计算各测量点上的电阻值rm=mean(r)%计算电阻平均值本节要求