Speed comparison between polyfit and A\y
Show older comments
I have a program where I am fitting a straight line to a set of data repeatedly over a million times. I wanted to get the most efficient possible code for doing this and thought polyfit would be the way to go. Surprisingly I found that polyfit is about 60 times slower than a simple A\y type estimation. I used the code below to test this out. Why is polyfit so slow ?
X = 0:50;
Y = X + 0.3 + randn(size(X));
N = 1000;
tic
for count = 1:N
temp = polyfit(X,Y,1);
end
tm = toc;
disp(sprintf('Polyfit too %g ms per call',tm/N/1e3));
tic
for count = 1:N
temp = [ones(length(X),1) ,reshape(X,length(X),1)] \ reshape(Y,length(Y),1);
end
tm = toc;
disp(sprintf('A\\y too %g ms per call',tm/N/1e3));
The output is
Polyfit took 614.351 micro seconds per call
A\y took 10.2792 micro seconds per call
Karthik
1 Comment
Sean de Wolski
on 20 Jun 2012
If you:
>>edit polyfit
You'll see that it's a big fancy wrapper for A\b.
Accepted Answer
More Answers (0)
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!