Is there a multiplicative accumarray function?

I am using accumarray to additively accumulate numbers with a code like the following:
wts = accumarray([P(:,2),P(:,1)],P(:,3),size(net));
Is there a function, or a simple vectorized method, to do the exact same thing with one difference: instead of adding the numbers, multiply them?
If accumarray finds numbers N1, N2, N3... it will add them as N1+N2+N3...
However, I want a function to multiply them as N1*N2*N3...
Thanks

답변 (1개)

the cyclist
the cyclist 2014년 3월 14일
편집: the cyclist 2014년 3월 14일

0 개 추천

accumarray() takes an optional fourth argument, which is the function to apply. You should be able to add @prod to do what you want.
Here is the example from the documentation:
val = 101:105;
subs = [1 1; 2 1; 2 3; 2 1; 2 3];
A = accumarray(subs, val, [2 4], @prod, 0, true)
Read
doc accumarray
for details.

카테고리

도움말 센터File Exchange에서 Quadratic Programming and Cone Programming에 대해 자세히 알아보기

제품

태그

질문:

2014년 3월 14일

편집:

2014년 3월 14일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by