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!