传递求和函数 matlab 并添加逐列求和
Passing sum function matlab and add column wise sum
是否可以通过求和函数声明如何汇总值?那么按列还是按行?就像我不传递就调用函数:
y = sum(x,2);
我想像这样调用一个聚合函数,但是在行中操作:
Output = Aggregate(Input,@sum);
在一定程度上取决于 Aggregate
如何使用传递的函数句柄,但以下应该有效
Output = Aggregate(Input,@(x)sum(x,2));
要沿第二个维度应用传递的函数:
Aggregate = @(x,fun) fun(x,2);
如您所见,这会在输入 (x
) 上调用传递的函数 (fun
),并使用一个固定的额外参数 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
是否可以通过求和函数声明如何汇总值?那么按列还是按行?就像我不传递就调用函数:
y = sum(x,2);
我想像这样调用一个聚合函数,但是在行中操作:
Output = Aggregate(Input,@sum);
在一定程度上取决于 Aggregate
如何使用传递的函数句柄,但以下应该有效
Output = Aggregate(Input,@(x)sum(x,2));
要沿第二个维度应用传递的函数:
Aggregate = @(x,fun) fun(x,2);
如您所见,这会在输入 (x
) 上调用传递的函数 (fun
),并使用一个固定的额外参数 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