在此MATLAB脚本中替换for循环

Vim*_*mos 2 matlab vectorization

有什么办法可以避免在下面的代码中使用循环吗?我正在做一个简化求和,即对a中的相同索引的所有值进行分组和求和.

a = [ 1 3 2 3 1 2]
b = [0.1 0.2 0.3 0.4 0.5 0.6]
for i = unique(a)
     c(i) = sum(b(ismember(a, i)))
 end
Run Code Online (Sandbox Code Playgroud)

bea*_*ker 6

这正是*accumarray意味着什么:

>> accumarray(a.',b.')
ans =

   0.60000
   0.90000
   0.60000
Run Code Online (Sandbox Code Playgroud)

*实际上,这是最简单的事情accumarray.它默认为@sum,但您可以指定自己的函数来告诉它如何处理累积的索引.