MATLAB匿名函数的用法(附带实例)
匿名函数通常是很简单的函数。不像一般的 M 文件主函数要通过 M 文件编写,匿名函数是面向命令行代码的函数形式,它通常只用一行非常简单的语句,就可以在命令行窗口或M文件中调用函数,这对那些函数内容非常简单的情况是很方便的。
创建匿名函数的标准格式如下:
例如定义函数:
注意,匿名函数的参数列表 arglist 中可以包含一个或多个参数,这样调用的时候就要按顺序给出这些参数的实际取值。但 arglist 也可以不包含参数,即留空。此时还需要通过 fhandle() 的形式来调用函数,即要在函数句柄后紧跟一个空的括号,否则,只显示 fhandle 句柄对应的函数形式。
匿名函数可以嵌套,即在 expr 表达式中可以用函数来调用一个函数句柄。
【实例】匿名函数应用示例。在命令行窗口中输入以下语句,并查看输出结果。
创建匿名函数的标准格式如下:
fhandle=@(arglist)expr其中:
- expr 通常是一个简单的 MATLAB 变量表达式,实现函数的功能,比如 x+x.^2 等;
- arglist 是参数列表,它指定函数的输入参数列表,对应多个输入参数的情况,通常要用逗号分隔各个参数;
- 符号 @ 是 MATLAB 中用来创建函数句柄的操作符,表示创建由输入参数列表 arglist 和表达式 expr 确定的函数句柄,并把这个函数句柄返回给变量 fhandle,这样,以后就可以通过 fhandle 来调用定义好的这个函数。
例如定义函数:
dingfun=@(x) (x+x.^2)表示创建了一个匿名函数,它有一个输入参数 x,它实现的功能是 x+x.^2,并把这个函数句柄保存在变量 dingfun 中,以后就可以通过 dingfun(a) 来计算当 x=a 时的函数值。
注意,匿名函数的参数列表 arglist 中可以包含一个或多个参数,这样调用的时候就要按顺序给出这些参数的实际取值。但 arglist 也可以不包含参数,即留空。此时还需要通过 fhandle() 的形式来调用函数,即要在函数句柄后紧跟一个空的括号,否则,只显示 fhandle 句柄对应的函数形式。
匿名函数可以嵌套,即在 expr 表达式中可以用函数来调用一个函数句柄。
【实例】匿名函数应用示例。在命令行窗口中输入以下语句,并查看输出结果。
>> dingth=@(x) (x+x.^2) % 定义函数句柄 dingth = 包含以下值的 function_handle: @(x)(x+x.^2) >> dingth(4) ans = 20 >> dingth1=@() (6+8) % 不含参数,即留空 dingth1 = 包含以下值的 function_handle: @() (6+8) >> dingth1() % 在函数句柄后紧跟一个空括号调用函数 ans = 14 >> dingth1 % 在函数句柄后不跟空括号,则给出函数句柄对应的函数形式 dingth1= 包含以下值的 function_handle: @() (6+8)匿名函数可以保存在 .mat 文件中,该例中通过 save dingth.mat 可以把匿名函数句柄 dingth 保存在 dingth.mat 文件中,当需要使用匿名函数 dingth 时,只需要执行 load dingth.mat 语句即可。