Quicker function than repmat to multiplay matrices with vectors?
9 次查看(过去 30 天)
显示 更早的评论
I've recognised that in my programm the most time-consuming parts are the parts where I use repmat, most of the times when I want to multiply a large Matrix with a vector. Is there an easier way?
The main problem was to vectorize the code instead of using loops all the time, but now, since I replicate a lot of data to get matrix-operations running, the program ist not really quicker...Are there better alternatives?
E.g.: LargeMatr=[ 1 2 3; 4 5 6; 7 8 9] %in reality around 40000 x 1000 elements
Vector=[ 1 3 4]'; % One column/ In reality with 40000 elements x 1 element
Result= LargeMatr.*Vector % is not possible, so I have to do this:
Result= LargeMatr.*repmat(Vector,1,3);
Is this already the most efficient way? Or would a loop even be quicker?
Thanks a lot!
0 个评论
采纳的回答
per isakson
2014-3-14
编辑:per isakson
2014-3-14
Try to use bsxfun, Apply element-by-element binary operation to two arrays with singleton expansion enabled
There is an example in the documentation of bsxfun that applies to your problem.
更多回答(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!