bsxfun to multiply matrix with vector multiple times in for loop --> how faster?
3 次查看(过去 30 天)
显示 更早的评论
I have a 2D matrix of size NxN, and each row I am multiplying with a 1xN vector with bsxfun in a for loop like this:
for k=1:1000
b(k)=mean(bsxfun(@times,tb_filter2d,d(k,:)),2);
end
Is there a way to speed this up? d is of the size 1000xN.
Thank you!!
4 个评论
James Tursa
2017-3-6
If tb_filter2d is your NxN matrix, how does this even work since the result of the RHS is a vector and you are assigning it to a scalar element location b(k)?
回答(2 个)
Ankita Nargundkar
2017-3-9
1. If you are on MATLAB R2016b, you can use operators directly instead of bsxfun. Refer to this example
Something on similar lines, https://www.mathworks.com/matlabcentral/answers/210352-optimize-speed-up-a-big-and-slow-matrix-operation-with-addition-and-bsxfun
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!