bsxfun to multiply matrix with vector multiple times in for loop --> how faster?
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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 comentarios
James Tursa
el 6 de Mzo. de 2017
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)?
Rik
el 6 de Mzo. de 2017
Is there a reason you can't use something like meshgrid to remove the loop?
Respuestas (2)
Ankita Nargundkar
el 9 de Mzo. de 2017
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 comentarios
Ver también
Categorías
Más información sobre Matrix Indexing en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!