是否可以傳遞求和函數並聲明如何總結值?所以列或行明智?就像我所說的功能,不傳:傳遞求和函數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結構來處理函數句柄。這就是我一直在尋找的。 –