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

* [例5_1.m] %zx51.m This is my first example. clear %清除工作空间中的干扰量 y1=2; %设定恒电压的幅值 for i=1:1:80 %设定循环的步长 x(i)=i/(2*pi); %产生一定的正弦波 y(i)=3*sin(x(i)); end figure(1) %图形一 plot(x,y,r-) title(正弦波3sinx) xlabel(‘x’); ylabel(y) * 2.运行文件 使zx51.m所在目录成为当前目录,或让该目录处在MATLAB的搜索路径上,然后运行指令,便可得到如下图形。 * 5.3 函数类型和参数 5.3.1 函数的类型 1. 匿名函数 匿名函数不需要M文件,只包含一个MATLAB表达式,任意多个输入和一个输出,可以在命令窗口、M文件中定义,其语法为: f=@(arglist)expression 说明: (1)expression是该函数的函数体,arglist是输入参数列表; (2)匿名函数可以具有多个输入参数,也可以没有输入参数,但是只能有一个输出参数(ans)。 * t=@()disp(Good Morning!); t() Good Morning! squ=@(x)x^2 squ = @(x)x^2 squ(10) ans = 100 sumxy=@(x,y)2*x+4*y; sumxy(2,4) ans = 20 * 2. 主函数和子函数 主函数和子函数的区别: MATLAB允许一个M函数文件包含多个函数的代码,其中第一个出现的函数称为主函数,其余的函数为子函数。 保存时所用的函数名称与主函数定义名相同。 主函数可以在M文件外部调用,而子程序不行。 同一文件的主函数和子函数的工作空间是相互独立的。 * 例:编写一函数,要求输入任意两个数后,求出这两数之和与绝对值之和的积。 function ch=sub(x,y) %主函数 ch=sub1(x,y)*sub2(x,y); function ch=sub1(x,y) %子函数1 ch=x+y; function ch=sub2(x,y) %子函数2 ch=abs(x)+abs(y); 运行结果: sub(4,3) ans = 49 sub(4,-3) ans = 7 * 5.3.2 局部变量和全局变量 1. 局部变量(Local Variables) 局部变量是在函数体内部的变量,其影响范围是本函数内部,而且不加载到MATLAB的工作空间。局部变量只在函数执行期间存在,当函数执行完变量就消失。 2. 全局变量(Global Variables) 全局变量是可以在不同的函数工作空间和MATLAB工作空间中共享使用的变量。在使用前必须用global定义,而且在任何使用该变量的函数中都要加以定义,即使在命令窗口中也不加以例外。 * function f=global_exam(x,y) % define 2 global variables global A B f=A*x+B*y; 在命令窗口中输入 global A B A=1; B=2; f=global_exam(2,3) f = 8 * 5.3.3 函数的参数 1. 函数的调用 函数的调用方式: [输出实参表]=函数名(输入实参表) 2. 函数参数的个数 nagin:该函数输入实参的个数 nargout:该函数输出实参的个数 nargin 在函数体内获得实际输入变量个数 nargout 在函数体内获得实际输出变量个数 nargin(‘fun’) 在函数体外获取定义的输入参数个数 nargout(‘fun’) 在函数体外获取定义的输出参数个数 * 例:编程实现,若只输入一个变量,系统提示输入错误,若输入两个、三个变量,则将各变量相加,将和输出。 function f=nargintest(a,b,c) if nargin=1 error(Not enough input arguments); elseif nargin==2 f=a+b; elseif nargin==3 f=a+b+c; end nargintest(1) ??? Error using == nargintest Not enough in

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档