Matlab中函数句柄总结复盘(一)

本文详细介绍了MATLAB中的函数句柄,包括其定义、语法和用途。函数句柄@用于创建对函数的引用,允许间接调用和存储在数据结构中。它提高了运行效率,尤其在频繁调用的场景下,并能在不同路径下保持有效。举例说明了如何创建和使用匿名函数句柄,强调了其作为标准数据类型的特点和优势。
摘要由CSDN通过智能技术生成

今天杰哥给大家介绍一下函数句柄的详细知识。

首先我们先看一个问题:f=@(x)cos(x)表示什么意思呢?其中的@代表什么呢?
我们来揭晓一下答案:

f是函数句柄;@是定义句柄的运算符;f=@(x)cos(x)相当于建立了一个函数文件:

% 建立函数文件f.m
function y=f(x)
y=cos(x);

再给大家举个例子:xsqual=@(x)x^2+2*x+1

则相当于建立了一个函数文件:

%建立xsqual函数
function y=xsqual(x)
y=x^2+2*x+1;

我们再做一个详细说明:

1、函数句柄function_handle(@):是一种间接调用函数的方式。
2、语法:handle=@functionname  or handle=@(arglist)anonymous_function
3、描述:函数句柄(function handle)是一种能够提供函数间接调用的matlab value。我们可以通过传递句柄来调用各种其他功能。你也可以将句柄存储到数据结构中备用(例如Handle Graphic 回调)。句柄是matlab的标准数据类型之一。
      当创建句柄时,你所指定的函数必须在matlab搜索路径之中,并且必须在创建语句的scope之中。例如,只要在定义子函数的文件之中,我们就可以为这个子函数创建句柄。这些条件不适用于evaluate函数句柄。例如,你可以在一个单独(out-scope)通过句柄执行一个子函数,这要求句柄是在in-scope创建的。

举例说明:
       handle=@(arglist)anonymous_function用来创建匿名函数(anonymous function)并返回该匿名函数的句柄。其中:括号右边的函数体是单个的matlab语句(statement)或者matlab命令;arglist是一个用逗号“,”分隔的输入变量列表;该函数通过句柄handle执行。
备注:函数句柄是标准的matlab数据类型。因此,你可以像matlab其他数据类型一样进行操作。

4、函数句柄的好处
       ①提高运行速度。因为matlab对函数的调用每次都是要搜索所有的路径,从set path中我们可以看到,路径是非常的多的,所以如果一个函数在你的程序中需要经常用到的话,使用函数句柄,对运行速度会有所提高。
       ②使用可以与变量一样方便。比如说,我在这个目录运行后,创建了本目录的一个函数句柄,当我转到其他的目录下的时候,创建的函数句柄还是可以直接调用的,而不需要把那个函数文件拷贝过来。因为你创建的function handles中,已经包含了路径。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值