Кумулятивное суммирование массива чисел по индексу

Предположим, у вас есть массив значений, который потребуется суммировать вместе

d = [1,1,1,1,1]

и второй массив, определяющий, какие элементы должны суммироваться вместе

i = [0,0,1,2,2]

Результат будет сохранен в новом массиве размером max (i) +1 . Так, например, i = [0,0,0,0,0] будет эквивалентно суммированию всех элементов d и сохранению результата в позиции 0 нового массива размером 1 .

Я попытался реализовать это с помощью

c = zeros(max(i)+1)
c[i] += d

. Однако операция + = добавляет каждый элемент только один раз, что дает неожиданный результат.

[1,1,1]

вместо

[2,1,2]

Как правильно реализовать суммирование такого рода?

10
задан dzhelil 31 August 2010 в 04:45
поделиться