Speeding up calculation with power
Mostrar comentarios más antiguos
I am having a problem with one line of code that needs to be repeated multiple times in a loop (approximately 1 million!) and is causing long computation times. It requires raising a number to the power which i think is the cause problem. Does anyone have any suggestions to increase the speed of this? Here is the problematic line
p=4:10000;
a(p)= b.^(p-3)*c;
Any help is greatly appreciated
3 comentarios
Walter Roberson
el 26 de Oct. de 2013
I wonder if in the context you are doing that calculation, it would be feasible to re-write it in terms of logarithms? Then it would be
Log_a(4:end) = log(c) + log(b) .* (p-3);
which might be faster.
Well, it's not associated with the power computation itself, but you have preallocated the result array a, haven't you?
What are b and c? Can you precompute, store and use the results of subbexpression(s) instead of recalculating every time?
And, in the end, if it's still a bottlneck there's always converting some portion to mex...
Cedric
el 26 de Oct. de 2013
We need to see the code with what you are doing before the loop for defining and/or preallocating a,b,p,c, and the loop itself.
Respuestas (0)
Categorías
Más información sobre Programming en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!