是否可以传递求和函数并声明如何总结值?所以列或行明智?就像我所说的功能,不传:传递求和函数matlab并添加明智总和
y = sum(x,2);
我想打电话给这样的聚合功能,但在行操作:
Output = Aggregate(Input,@sum);
是否可以传递求和函数并声明如何总结值?所以列或行明智?就像我所说的功能,不传:传递求和函数matlab并添加明智总和
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
在集合函数中,我做了很多其他计算,并且我想将sum函数作为输入参数传递,我想在集合函数中使用它。聚合函数本身不应该是总结我的值的函数。 –
那么,这正是我的代码所做的,不是吗?看到我上面的例子,'sum'和'prod'函数作为输入传递 –
我理解你的代码的方式,你定义工作区中的'Aggregate'函数,'Aggregate'函数用值和函数进行计算像'sum'或'prod'。但我的意图是传递一个输入参数(在我的情况'sum'函数)到另一个函数,它是在另一个脚本中定义的。在其他函数的一部分中,我想使用输入参数,sum函数进行一些计算。聚合函数本身不仅应该返回给定数组的总和或乘积。因此,solution'output = Aggregate(Input,@(x)sum(x,2)'适用于我。 –
作品对我来说,为I P通过一个Input结构来处理函数句柄。这就是我一直在寻找的。 –