assigning to vectors within bsxfun
Show older comments
I do not know why this operation throws an error in bsxfun
c3 = bsxfun(@(x,y,z,m,op) x(1:y(:),:) = z(1:op:op*y(:),1) + m(:), X, Y, Z, M, Option);
The loop I am trying to vectorize is this :
for k=1:Count
X(1:Y(k),k)= Z(1: Option: Option* Y(k),1) + M(k);
end
what am I doing wrong?
1 Comment
Jan
on 17 Apr 2013
I'm interested in a comparison of the runtimes. I do not see a benefit for the vectorized versions at first glance.
Answers (1)
Andrei Bobrov
on 16 Apr 2013
Edited: Andrei Bobrov
on 16 Apr 2013
Z1 = bsxfun(@plus,Z(1:op:op*max(Y)),M(:).');
s = size(Z1);
Z2 = zeros(s);
Z2(sub2ind(s,Y,1:s(2))) = 1;
x = Z1.*flipud(cumsum(flipud(Z2)));
Categories
Find more on GPU Computing in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!