Matlab创建文件、function文件和函数调用 | 您所在的位置:网站首页 › 怎样创造文件 › Matlab创建文件、function文件和函数调用 |
目录 一、建立文件 二、函数调用 二、函数句柄 三、匿名函数 想查找相关内容也可在页面按ctrl+F搜索文字 一、建立文件新建脚本,保存后可运行,后缀为.m 二、函数调用创建ffib.m文件,编写求Fibonacci数列的函数 function 输出形参表=函数名(输入形参表) 注释说明部分 函数体 若输出参数仅有一个,则无须方括号;若有多个输出参数,则用逗号分隔。在Matlab中的主函数名必须与M文件名相同,并且函数对变量的操作是在函数体内(专用的函数工作空间),而非工作空间。这与脚本文件大不一样其中函数名的命名规则与变量名相同。输入形参为函数的输入参数,输出形参为函数的输出参数。当输出形参多于1个时,则应该用方括号括起来。函数文件是另一种形式的M文件,每一个函数文件都定义一个函数。事实上,MATLAB提供的标准函数大部分都是由函数文件定义的函数的定义行(必须有)----关键字function申明以下为函数定义函数体----函数体是函数的主体部分,它可包括各种MATLAB语句,还可包括函数调用和脚本调用。 function f=ffib(n) %用于求Fibonacci数列的函数文件 %f=ffib(n) %2019年7月8日编 f=[1,1]; i=1; while f(i)+f(i+1)> ffib(200)ans = 1 至 12 列 1 1 2 3 5 8 13 21 34 55 89 144 创建的如果为函数文件,则文件样式改变普通运行文件样式为: 三、函数句柄 函数句柄(Function handle)是一种数据类型,它保存着“为该函数创建句柄时的路径、视野、函数名以及可能存在的重载方法”。它可使"函数调用"像"变量调用"一样灵活方便,提高调用速度,提高软件重用性。函数句柄必须通过专门定义才会生成。定义句柄方法有两种:利用@符号,或利用转换函数str2func。 函数句柄演算指令feval的使用方式[y1,y2,...]=feval(Fhandle,arg1,arg2,…) [y1,y2,…]=feval('Fname',arg1,arg2,…) 示例1: 函数定义 函数调用: >> t=funf(@fund,[1,2,3],[3,2,1]) t = 64 >> t=funf(@func,[1,2,3],[3,2,1]) t = 10 示例2: 函数定义 function f = myfunf(x,a) f = (x - a)^2;函数调用 >> x = fminbnd(@(x)myfunf(x,1.5),0,1) x = 0.9999 四、匿名函数 匿名函数:直接将函数关系以函数句柄方式存储在变量中;定义格式:fhandle=@(arglist) expr•单重匿名函数示例: f=@(x,a,b) a*x.^2+b; % 匿名函数定义 x=1:5 , y=f(x,2,-1) % 匿名函数调用 多重匿名函数:由两个以上@(arglist)符号引导的表达式所定义的函数;每层@后紧跟的变量表的作用域直至表达式结尾。二重匿名函数示例: f=@(a,b) @(x) a*x.^2+b f23=f(2,3) f23v=f23(1:5)示例: 已知在[0,u]区间上的数值积分值,求解u=? sol=fzero(@(u) 0.99*pi/2-quad(@(x) sin(x).^2./x.^2,0,u),1) 处理通过多个返回参数返回函数结果可用deal(X1,X2,...)函数 fun=@(x) deal([2*x(1)-1;x(1)+x(2)],2*x.^2-1) [a,b]=fun(1:5) |
CopyRight 2018-2019 实验室设备网 版权所有 |