Clear Filters
Clear Filters

Is there a multiplicative accumarray function?

2 views (last 30 days)
Christopher
Christopher on 14 Mar 2014
Edited: the cyclist on 14 Mar 2014
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

Answers (1)

the cyclist
the cyclist on 14 Mar 2014
Edited: the cyclist on 14 Mar 2014
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.

Tags

Products

Community Treasure Hunt

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

Start Hunting!