假设我有一个向量B=[1 1 2 2]
和{B}形式的A=[5 6 7 4]
表示A中的数字需要总结。那就是我们需要将5和6加起来作为结果数组的第一个条目,将和7和4作为第二个条目。如果B是[1 2 1 2]
,则结果的第一个元素是5 + 7,第二个元素是6 + 4.
我怎么能在Matlab中以一般意义来做呢?
答案 0 :(得分:4)
一种灵活而通用的方法是使用accumarray()
。
accumarray(B',A')
该函数将A中的值累积到B指定的位置。
由于文档不易理解,我将总结其灵活性的原因。你可以:
sum
)0
)sparse
,从而避免内存不足 答案 1 :(得分:0)
[sum(A(1:2:end));sum(A(2:2:end))]