第三章MATLAB程序设计-2函数剖析.doc

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

第三章 MATLAB程序设计-2 主要内容: 函数 程序调试 函数 1.1 函数文件的定义 1、定义格式: function [返回变量列表]=函数名(输入变量列表) %注释 输入、返回变量格式的检测 函数体语句 2、nargin、nargout:函数调用时自动生成的两个变量,分别描述输入、输出变量的实际个数; 3、help命令,可显示注释行信息; 4、函数文件遵循的规则: (1)函数名必须和文件名相同; (2)函数文件有输入和输出参数;(也不必须,区别于脚本文件)例 test.m (3)函数文件可以有0个或多个输入、输出变量。但不能多于定义的变量个数; (4)函数文件中的变量(除了输入、输出变量)有自己的工作空间,除非特别申明(global),否则全为局部变量,函数执行完退出,变量也相应结束生命周期; 【例】3-3 详见函数文件comp.m function y=comp(x) %ex3_3:comp(x) %comp(x)=(x+2)^2*x %comp(x)returns value of the expression z=x+2; y=z^2*x; %end of function and return y 1.2 函数调用 (1)命令行调用或者M文件调用均可;函数调用语法/格式: a 命令行方式调用 functionname in1 in2 …inN 不能为返回参数赋值,参数以文字字符形式传递 b 函数式调用 out=functionname(in1,in2,…,inN); [out1,out2,…,outN]=functionname(in1,in2,…,inN); 参数为值传递 (2)函数运行后驻留内存,用clear命令清除: clear functionname; 清除指定函数 clear functions; 清除所有函数 clear all; 清除所有变量和函数 (3)存在同名函数的调用顺序: a 变量 b 子函数 c 私有函数 d 类的构造函数 e 重载函数 f 当前路径上的函数 g 搜索其他路径 注:可用which命令查询会使用哪个函数 【例】3-4 3-5 %例3_4 help disp hello=3; disp hello %命令行方式 disp(hello)%函数方式 %例3_5 help strcmp str1=one; str2=one; strcmp str1 str2 %命令行方式 strcmp(str1,str2)%函数方式 1.3 参数传递 1.3.1 返回参数 a 返回参数的个数可以少于函数定义时的返回参数个数,但不可以多于; b 返回参数按照定义的顺序返回; 【例】3-6 function [a b c]=myfun(x,y) b=x*y; a=99; c=x.^2; 1.3.2 输入输出参数检查:nargin、nargout:检查参数个数 【例】-7 testarg.m function [c d]=testarg(a,b) if((nargin==1)((nargout==1))) disp((nargin and nargout=1)) c=a^2; elseif((nargin==2)*((nargout==2))) disp(nargin and nargout=2) c=a^3; d=a*b; else disp(error input and output); end 1.3.3可选输入输出参数:varargin、varargout a 用vargin、vargout传递任意数目的输入、输出参数; b MATLAB将输入参数打包成一个细胞数组; c 输出参数须在程序中打包; d 定义: function varargout=functionname(vin1,vin2,…) :varargout在函数中定义; :MATLAB按照varargout的定义依次赋值给调用时的返回变量; function [vout1 vout2…varargout]=functionname(vin1,vin2,…) :除varargout外函数定义行上还有其他的返回参量 :MATLAB依次为最左端的变量赋值,最后再顺序返回varargout的值; 【例】:3-8 byRow.m function varargout=byRow(a) %矩阵翻转 varargout{1}=With Varargout construct by row ...; for k=1:length(a) row=length(a)-(k-1); varargout{k+1}=a(row

文档评论(0)

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

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档