【发布时间】:2011-04-06 02:00:17
【问题描述】:
假设您有一个需要相加的值数组
d = [1,1,1,1,1]
第二个数组指定哪些元素需要相加
i = [0,0,1,2,2]
结果将存储在大小为max(i)+1 的新数组中。因此,例如i=[0,0,0,0,0] 相当于将d 的所有元素相加并将结果存储在大小为1 的新数组的0 位置。
我尝试使用
c = zeros(max(i)+1)
c[i] += d
但是,+= 操作仅将每个元素添加一次,从而给出了意外的结果
[1,1,1]
而不是
[2,1,2]
如何正确实现这种求和?
【问题讨论】:
-
如果
d的值是唯一的,这会更清楚。例如,如果d = [0,1,2,3,4]Im guessing fori = [0,0,0,0,0]` 你想要c = [10],而对于i = [0,0,1,2,2]你想要c = [1,2,7]? -
没错。感谢您的澄清。
-
在这种情况下,juxstapose 的解决方案以及我在 cmets 中建议的更改应该可以解决问题。