这个问题是关于MATLAB的有效实现。当使用for循环时,这是微不足道的。
假设我有一个2列向量,其中每行的第一个元素是索引,第二个是实数。
我想累积属于每个索引的所有元素。
例如:
V = [1 1;
2 3;
1 4;
2 5 ];
然后结果是:
R = [1 5; 2 8];
第一行是因为添加第1和第3个元素得到5而第二个是添加第2和第4个元素。
我可以假设知道桶的最大数量(即桶是1..MAX),我希望结果向量具有MAX行。
答案 0 :(得分:5)
使用accumarray
完成任务:
R = accumarray(V(:,1), V(:,2));
如果您有一个非常旧版本的Matlab,您可以找到有用的加权直方图this implementation。