Vectorizing the loop

This code is similar to the histc function, but each element has weights associated with it. I'm looking to either use an alternate function or to vectorize it to make things faster
I have arrays A and B, and w is an array of weights associated with each element in A.
I'm hoping to calculate:
for i=1:length(B)
x(i) = sum((A>B(i)).*w)
end
Any help is appreciated. Thanks.

5 个评论

I think it can be done, could you show small examples for A, B, w.
The arrays are fairly long, but to give a really simple example
A = [ 1 3 2 5 3 2 5 6], B = [1 2 3 4 5], w = [0.1 0.03 0.1 0.1 0.05 0.2 0.1 0.01]
cumsum(histc(...)) .* w ??
Not sure if that works - particularly because cumsum(histc(...)) will have the size of B and w will have the size of A.

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 MATLAB 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by