首页 > 解决方案 > 评估具有不同数量的匿名函数的元胞数组

问题描述

我有一个匿名函数的单元格数组,所有这些函数通常都采用不同的变量,例如

{@(x)x, @(x,y)x+y, @(y)y^2}

我想为一对值评估所有这些函数{x,y},即执行类似的操作

{@(x)x, @(x,y)x+y, @(y)y^2}(x,y)

我怎样才能在 Matlab 中做到这一点?


编辑:由于找不到好的解决方案,我现在手动解析函数定义。

标签: matlabanonymous-functioncell-array

解决方案


我会遍历这些函数,但我想有一种更优雅、更简洁的方式。我还使用了~占位符,因此不会传播太多输入的错误。~占位符可用于计划不使用的输入和输出。

%Input variables%
x = 1;
y = 2;

Functions = {@(x,~) x, @(x,y) x+y, @(~,y) y^2};

%Looping through functions and evaluating%
for Function_Index = 1: length(Functions)
   
Functions{Function_Index}(x,y)

end

使用 MATLAB 版本:R2019b


推荐阅读