MATLAB经典教程。第五章_程序的设计说明.ppt

MATLAB经典教程。第五章_程序的设计说明.ppt

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5.2 函数 函数调用: %------------------- function [x1,y1]=iter(x0,y0) %迭代方程 a=2; b=2.5; ? ? return; 5.2 函数 1)对于函数的调用者而言,函数就可以认为是一个“黑箱”,有输入输出,但是具体如何实现则不可见。 2)接口问题:函数与其调用者信息传递的方式。 在matlab、c等编程语言中,通过输入变量、输出变量 来实现信息传递。 3) 输入变量:函数的入口数据,由函数的调用者传入; 输出变量:函数的出口数据,传递给函数的调用者。 4)函数的执行过程中,相关变量的生存周期是怎样的?内存空间的创建与销毁。 5.2 函数 函数调用: 1)主函数中的x0,y0与子函数iter中的x0,y0有何关系? 2)如果将iter的输出变量改为[xs,ys],可以吗?程序如何改写? 3)如果将xs、ys改为全局变量,不通过输入参量进行信息传递,iter函数如何改写? 5.2 函数 全局变量: 1)定义: global var1 var2 例子7:用全局函数实现例1. (exam4_7.m) 5.2 函数 全局变量: function exam3_7 global xs ys x0=rand(1); y0=rand(1); xs=x0; ys=y0; for i=1:10000 iter; end 5.2 函数 全局变量: function iter global xs ys a=2; b=2.5; x0=xs(end); y0=ys(end); x1=a*y0*sin(x0); y1=abs(x0)-b; xs(end+1)=x1; ys(end+1)=y1; return; 5.2 函数 nargin/nargout(控制输入/输出变量个数): 例子8:写一个函数,该函数会根据输入/输出参数的个数而调整功能: 1)1输入/1输出: 直接输出; 2)2输入/2输出:直接输出; 3)1输入/2输出:输出对应的实部/虚部; 4)2输入/1输出:对实部/虚部整合成一个输出。 补充: 1)real(x)/imag(x): 获取x的实部/虚部 2)nargin/nargout: 输入/输出变量的个数。 5.2 函数 nargin/nargout: 例子8: function [y1,y2]=exam4_8(x1,x2) if nargin==1 if nargout==1 y1=x1; else y1=real(x1); y2=imag(x1); end else 5.2 函数 nargin/nargout: 例子8: if nargout==1 y1=x1+x2*i; else y1=x1; y2=x2; end end return; 5.2 函数 varargin/varargout(不定数目输入/输出变量): 将全部参数存储于一个元胞数组中。 如此,接口可以更灵活。 相关内容详见教材。 扩展:1)c++中,可以定义函数名相同,但输入/输出变量不同的多个函数; 2)c++的“多态”。 5.2 函数 几个问题: 1)什么是函数? 若干条有内在关联的语句的组合,构成了函数。 2)函数有什么用? 增加程序的可读性、精简代码、层次感。 3)函数定义的语法格式? 4)什么是函数的输入输出参数? 5.3 函数文件 M文件分为两类: 1)脚本文件。 2)函数文件。 脚本文件:由一系列的MATLAB指令和命令组成的纯文本格式的M文件。脚本文件没有输入参数,也没有输出参数,执行起来就像早期的DOS操作系统的批处理文件一样。 note: 1)只

文档评论(0)

文档分享 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档