【发布时间】:2020-10-07 21:26:49
【问题描述】:
我有一个匿名函数的元胞数组,所有这些函数通常都采用不同的变量,例如
{@(x)x, @(x,y)x+y, @(y)y^2}
我想为一对值 {x,y} 评估所有这些函数,即执行类似的操作
{@(x)x, @(x,y)x+y, @(y)y^2}(x,y)
如何在 Matlab 中做到这一点?
编辑:由于找不到好的解决方案,我现在手动解析函数定义。
【问题讨论】:
-
找出输入变量的名称绝非易事,因为它需要自省。我认为这在 MATLAB 中是可能的,但这需要做很多工作,我认为您必须手动解析函数定义,您可以将其作为字符串检索。在 MATLAB 中,输入参数的实际名称通常不会在函数定义之外共享。
-
问题不是元数,问题是元数相同的函数可以使用不同的变量
-
您是否考虑过定义单个函数
@(x,y) {x, x+y, y^2}? -
@CrisLuengo 的建议非常简洁明了。
-
@CrisLuengo 匿名函数是函数的参数,由用户给出。因此,为了使用您的解决方案,我将更改函数的接口,这是我想避免的。
标签: matlab anonymous-function cell-array