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)
这正是*accumarray意味着什么:
>> accumarray(a.',b.')
ans =
0.60000
0.90000
0.60000
Run Code Online (Sandbox Code Playgroud)
*实际上,这是最简单的事情accumarray.它默认为@sum,但您可以指定自己的函数来告诉它如何处理累积的索引.