1
accumarray
在Matlab中是驚人的,我經常使用它。我有一個問題,我想傳遞給accumarray
的函數是加權平均值。即它採用兩個向量,而不是單個向量。這似乎是accumarray
不支持的用例。使用accumarray進行加權平均?
我的理解是否正確?
考慮,功能weightedAverage
function [ result ] = weightedMean(values, weights)
result = sum(values(:).*weights(:))/sum(weights(:));
end
現在,我們要運行accumarray
如下:
subs = [1 1 1 2 2 3 3 3];
vals = [1 2 3 4 5 6 6 7];
weights = [3 2 1 9 1 9 9 9];
accumarray(subs, [vals;weights],[], @weightedMean)
但MATLAB的回報:
Error using accumarray
Second input VAL must be a vector with one element for each row in SUBS, or a scalar.
我不知道。你能舉一個例子嗎?也許你試過的代碼? – beaker