Speeding up calculation with power

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 Kommentare

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.
dpb
dpb am 26 Okt. 2013
Bearbeitet: dpb am 26 Okt. 2013
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
Cedric am 26 Okt. 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.

Melden Sie sich an, um zu kommentieren.

Antworten (0)

Kategorien

Mehr zu Programming finden Sie in Hilfe-Center und File Exchange

Tags

Gefragt:

am 26 Okt. 2013

Kommentiert:

am 26 Okt. 2013

Community Treasure Hunt

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

Start Hunting!

Translated by