More efficient dot product function.

28 vues (au cours des 30 derniers jours)
Andrew
Andrew le 1 Juil 2013
Hello,
I am just wondering if anyone knows a more efficient function than the dot from MATLAB. I am running a very robust simulator that needs to compute over 3 million dot products (and possibly even more for different cases) throughout the course of the simulation. This leads to the dot products taking up the second most amount of time out of the many functions called by the simulator. I suspect that a lot of the time spent in the dot function is being wasted checking to make sure the vectors are properly sized.
Thanks for your help!
  1 commentaire
James Tursa
James Tursa le 1 Juil 2013
How big are your vectors?

Connectez-vous pour commenter.

Réponse acceptée

Hugo
Hugo le 1 Juil 2013
Are you using the function dot(x,y) ?
If that's so, better use
x'*y (assuming that x and y are column vectors)
In my computer, x'*y is twice faster than sum(x.*y) and twenty times faster than dot(x,y). Good luck.
  1 commentaire
Andrew
Andrew le 1 Juil 2013
Thanks, I was considering that but wasn't entirely sure about it!

Connectez-vous pour commenter.

Plus de réponses (1)

Shashank Prasanna
Shashank Prasanna le 1 Juil 2013
BSXFUN is the most efficient way to do element wise dot operations:

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by