匿名函数是存储在程序文件中、但与数据类型是 的变量相关的函数。匿名函数可以接受多个输入并返回一个输出。它们可能只包含一个可执行语句。
例如,创建用于计算平方数的匿名函数的句柄:
变量 是一个函数句柄。 运算符创建句柄, 运算符后面的圆括号 包括函数的输入参量。该匿名函数接受单个输入 ,并显式返回单个输出,即大小与包含平方值的 相同的数组。
通过将特定值 () 传递到函数句柄来计算该值的平方,与您将输入参量传递到标准函数一样。
许多 MATLAB® 函数接受将函数句柄用作输入,这样您可以在特定值范围内计算函数。您可以为匿名函数或程序文件中的函数创建句柄。使用匿名函数的好处是不必为仅需要简短定义的函数编辑和维护文件。
例如,通过将函数句柄传递到 函数,计算 函数从 到 范围内的积分:
您无需在工作区中创建变量以存储匿名函数。可以在表达式内创建临时函数句柄,例如这次对 函数的调用:
div itemprop="content">
函数句柄不仅可以存储表达式,还能存储表达式进行计算需要的变量。
例如,为需要系数 、 和 的匿名函数创建句柄。
由于 、 和 在您创建 时可用,该函数句柄包含这些值。即使您清除变量,这些值仍持久保留在函数句柄内:
要为这些系数提供不同值,您必须创建新的函数句柄:
可以将函数句柄及其相关值存储在 MAT 文件中,然后使用 和 函数在后续的 MATLAB 会话中加载它们,例如
在构造匿名函数时仅使用显式变量。如果匿名函数访问未在参量列表或主体中显式引用的任何变量或嵌套函数,则 MATLAB 会在您调用该函数时引发错误。隐式变量和函数调用通常会在 、、 和 等函数中遇到。请避免在匿名函数主体中使用这些函数。
div itemprop="content">
匿名函数中的表达式可以包含其他匿名函数。这可用于将不同的参数传递到在某一值范围内计算的函数。例如,您可以针对不同的
值求解以下方程,方法是合并使用两个匿名函数:
下面介绍得出该语句的步骤:
最终的函数可以针对任何 值来求解方程。例如:
div itemprop="content">
如果您的函数不需要任何输入,请在定义和调用匿名函数时输入空的圆括号。例如:
在赋值语句中省略圆括号会创建另一函数句柄,并且不执行函数:
div itemprop="content">
然而,匿名函数只返回一个输出。如果函数中的表达式返回多个输出,您可以在调用该函数句柄时请求它们。
例如, 函数可以返回与输入向量数量一样多的输出。调用 的匿名函数只返回一个输出 ()。通过调用 可访问 函数返回的输出。
您可以使用来自 的输出创建网格图或曲面图:
div itemprop="content">
虽然大多数的 MATLAB 基本数据类型支持多维数组,但函数句柄必须是标量(单个元素)。但您可以使用元胞数组或结构体数组存储多个函数句柄。最常见的方式是使用元胞数组,例如
创建元胞数组时,记住 MATLAB 将空格解释为列分隔符。如上面的代码所示,省略表达式中的空格,或将表达式括在圆括号中,例如
使用花括号访问元胞内容。例如, 返回第一个函数句柄。要执行该函数,请在花括号之后的圆括号中传递输入值:
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/3842.html