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