我试图想办法在没有循环的情况下执行以下操作:
假设我有一个向量x
,我将一些元素e
加入其中。我还有一个索引ids
的向量,它说明x
要将值发送到哪个元素。即。
x = zeros(1,4);
e = [ 1 10 100 1e3 1e4];
ids = [1 1 2 4 3];
我想做点什么
x(ids) = x(ids) + e
那将返回
x =
11 100 10000 1000
因为我们两次引用x(1),而是返回
x =
10 100 10000 1000
答案 0 :(得分:4)
accumaray
是一个非常有用的功能,可以用来做这些技巧。在你的情况下:
accumarray(ids',e)
将完成这项工作。