第6章M文件和MATLAB编程分析.ppt

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章M文件和MATLAB编程分析

4.函数的参数 MATLAB的函数调用有一个与其它语言不同的地方,就是函数的输入和输出的参数的数目可以改变,从而可以使一个函数可以完成很多功能。 函数的输入输出参数的个数可以通过变量nargin和nargout获得,nargin用于获得输入参数的个数,nargout用于获得输出参数的个数。 nargin %在函数体内获取实际输入变量的个数 nargout %在函数体内获取实际输出变量的个数 nargin(‘fun’) %在函数体外获取定义的输入参数个数 nargout(‘fun’) %在函数体外获取定义的输出参数个数 【例6.13】函数test1的功能是输出a和b的和。如果只输入一个变量,则认为另一个变量为0,如果两个变量都没有输入,则默认两者均为0 (narg.m)。 function y=narg(a,b) %参数个数可变,计算a和b的和 if nargin==0 a=0;b=0; elseif nargin==1 b=0; end y=a+b; 6.局部变量和全局变量 局部变量是在函数体内部使用的变量,其影响范围只能在本函数内,只在函数执行期间存在。一旦函数结束运行,则变量占用的内存空间自动释放,变量的数值也不存在了。 在命令窗口调用一个函数文件,工作窗口将看不见函数文件中的局部变量。 全局变量是可以在不同的函数工作空间和MATALB工作空间中共享使用的变量,全局变量用命令global定义。全局变量的作用域是整个MATLAB工作空间,即全程有效。所有的函数都可以对它进行存取和修改。因此,定义全局变量是函数间传递信息的一种手段。 6.3 串演算函数 6.3.1 eval 函数eval对字符串进行处理,得到数值解。 语法格式为: eval(字符串) 【例6.15】先定义字符串,再用eval求出1到4阶的魔方矩阵 (eval_magic.m)。程序如下: %Generate a sequence of matrices named M1 through M4 clear for n = 1:4 eval([M num2str(n) = magic(n)]) end 6.3.2feval 语法格式为: feval(字符串,数组) 求由字符串给定的函数值,其输入参量是数组。例如, a=feval(sqrt,2) a = 1.4142 即等价于求sqrt(2)值。 6.4 函数句柄 函数句柄(Function handle)是MATLAB6.0以后版本启用的新数据类型,可以用变量来表示函数的句柄。 为一个函数定义句柄的方法有两种: 第一种是利用@符号,语法格式为: 变量名=@函数名 此处地函数名可以是当前MATLAB中可以使用的任意函数 例如: mysin=@sin, 此后mysin就和sin同样地使用, mysin(pi)和sin(pi)的含义相同。 第二种是利用转换函数str2func,语法格式为: 变量名= str2func(函数名) 【例6.16】编写一个函数文件,通过函数句柄绘制图形。(trigPlot.m) function trigPlot(h, val) % Verify that h is a function handle. % Call the function mapped to handle h. if isa(h, function_handle) A = h(val); plot(A) % Plot the resulting data. end 6.5程序调试 6.5.1程序调试概述 在开发M文件过程中,不可避免地出现错误(Bug)。 应用程序的错误主要有两类,一类是语法错误,另一类是运行时的错误。 语法错误包括词法或文法的错误,例如函数名的拼写错、表达式书写错等。一旦发现语法错误,MATLAB立即标志这些错误,并提供有关所遇到的错误类型,以及发生错误处在M文件的行数。给定这些反馈信息,以便纠正这些错误。 6.5.2调试器 找到错误的最好的方法是应用MATLAB支持的调试器(debugger)。M文本编辑器事实上就是调试器,包含了一系列的调试图标。在工具栏的debug下拉式菜单中包含了很多的调试选项。调试菜单debug如图7.4所示。 在debug下拉菜单中,可以进行单步运行操作和断点操作。在程序运行前,单步菜单Step、Step In和Step Out都处于非激活状态,Run是处于激活状态的。只有当对设置了断点的程序运行的过程中,可以激活单步菜单。debug下拉菜单的主要功能为: Step:不进入函数单步运行。 Step In:进入函

文档评论(0)

wbjsn + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档