是否可以传递sum函数并声明如何汇总值?那么列或行呢?就像我调用函数而不通过:
y = sum(x,2);
我想调用这样的Aggregation函数,但是在行中运行:
Output = Aggregate(Input,@sum);
答案 0 :(得分:2)
要沿第二维应用传递的函数:
Aggregate = @(x,fun) fun(x,2);
如您所见,这会在输入(fun
)上调用传递的函数(x
),并使用固定的额外参数2
来指示函数将在其中运行的维度。这适用于任何函数,如sum
,接受维度作为第二个参数。
示例:
>> Aggregate([1 2; 3 4], @sum)
ans =
3
7
>> Aggregate([1 2; 3 4], @prod)
ans =
2
12
要沿指定维度应用传递的函数:
Aggregate = @(x,fun,dim) fun(x,dim);
示例:
>> Aggregate([1 2; 3 4], @sum, 2)
ans =
3
7
答案 1 :(得分:1)
取决于Aggregate
如何使用它传递的函数句柄,但以下内容应该有效
Output = Aggregate(Input,@(x)sum(x,2));