- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5-MATLAB程序设计内容资料.ppt
5.3.2 函数调用 函数调用的一般格式是: [输出实参表]=函数名(输入实参表) 注:函数调用时各实参出现的顺序、个数,应与函数定义时形参的顺序、个数一致,否则会出错。函数调用时,先将实参传递给相应的形参,从而实现参数传递,然后再执行函数的功能。 例5-15 利用函数文件,实现直角坐标(x,y)与极坐标(ρ,θ)之间的转换。 函数文件tran.m: function [rho,theta]=tran(x,y) rho=sqrt(x*x+y*y); theta=atan(y/x); 调用tran.m的命令文件main1.m: x=input(Please input x=:); y=input(Please input y=:); [rho,the]=tran(x,y); rho the 在MATLAB中,函数可以嵌套调用,即一个函数可 以调用别的函数,甚至调用它自身。一个函数调用 它自身称为函数的递归调用。 例5-16 利用函数的递归调用,求n!。 递归调用函数文件factor.m如下: function f=factor(n) if n=1 f=1; else f=factor(n-1)*n; %递归调用求(n-1)! end 5.3.3 函数参数的可调性 两个永久变量: nargin:记录调用该函数时的输入实参个数。 nargout:记录调用该函数时的输出实参个数。 只要在函数文件中包含这两个变量,就可以准确地 知道该函数文件被调用时的输入输出参数个数,从 而决定函数如何进行处理。 例5-17 nargin用法示例。 函数文件examp.m: function fout=charray(a,b,c) if nargin==1 fout=a; elseif nargin==2 fout=a+b; elseif nargin==3 fout=(a*b*c)/2; end 命令文件mydemo.m: x=[1:3]; y=[1;2;3]; examp(x) examp(x,y) examp(x,y,3) 5.3.4 全局变量与局部变量 全局变量用global命令定义,格式:global 变量 例5-18 全局变量应用示例。 先建立函数文件wadd.m, %该函数将输入的参数加权相加。 function f=wadd(x,y) global ALPHA BETA f=ALPHA*x+BETA*y; 在命令窗口中输入: global ALPHA BETA ALPHA=1; BETA=2; s=wadd(1,2) 5.4 程序举例 例5-19 猜数游戏。 首先由计算机产生[1,100]之间的随机整数,然 后由用户猜测所产生的随机数。根据用户猜测 的情况给出不同提示,如猜测的数大于产生的 数,则显示“High”,小于则显示 “Low”,等 于则显示“You won”,同时退出游戏。用户最 多可以猜7次。 例5-20 用筛选法求某自然数范围内的全部素数。 素数是大于1,且除了1和它本身以外,不能被其他任何整数所整除的整数。用筛选法求素数的基本思想是:要找出2~m之间的全部素数,首先在2~m中划去2的倍数(不包括2),然后划去3的倍数(不包括3),由于4已被划去,再找5的倍数 (不包括5),…,直到再划去不超过的数的倍数,剩下的数都是素数。 n=0; for m=100:1000 flag=1; j=m-1; i=2; while i=j flag if rem(m,i)==0 flag=0; end i=i+1; end if flag n=n+1; prime(n)=m; end end prime 【例】 求[100,1000]以内的全部素数。 %变量prime存放素数 例5-21 Fibonacci数列定义如下: f1=1 f2=1 fn=fn-1+fn-2 (n2) 编写函数文件求小于任意自然数n的Fibonacci数列各项。 function f=ffib(n) %用于求Fibonacci数列的函数文件 %f=ffib(n) %2008年5月20日编 f=[1,1]; i=1; while f(i)+f(i+1)n f(i
您可能关注的文档
最近下载
- 子宫内膜息肉(宫腔镜子宫病损切除术)临床路径【2020版】(1).pdf VIP
- 《3000吨年产量的橙汁饮料生产工厂设计》14000字.doc VIP
- 基于simulink的综合通信系统的设计报告.pdf VIP
- 口腔解剖生理学考试题库及答案.docx VIP
- (电气工程及其自动化-电力系统自动化技术)电力系统自动化技术试题及答案.doc VIP
- 年产3000吨果汁饮料项目环评报告.doc VIP
- (电气工程及其自动化)电力系统试题及答案.doc VIP
- 毕业设计-年产3000吨猕猴桃果汁工厂工艺设计.doc VIP
- 2023年广西民族大学网络工程专业《数据结构与算法》科目期末试卷B(有答案).docx VIP
- 郡士田宫对照表.pdf VIP
原创力文档


文档评论(0)