You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

35 lines
759 B

% linreg.m
% David Rowe April 2015
%
% Based on:
% http://stackoverflow.com/questions/5083465/fast-efficient-least-squares-fit-algorithm-in-c
%
% finds y = mx + b to best fit n points x and y
function [m b] = linreg(x,y,n)
sumx = 0.0; % sum of x
sumx2 = 0.0; % sum of x^2
sumxy = 0.0; % sum of x * y
sumy = 0.0; % sum of y
sumy2 = 0.0; % sum of y**2
for i=1:n
sumx += x(i);
sumx2 += x(i)^2;
sumxy += x(i) * y(i);
sumy += y(i);
sumy2 += y(i)^2;
end
denom = (n * sumx2 - sumx*sumx);
if denom == 0
% singular matrix. can't solve the problem.
m = 0;
b = 0;
else
m = (n * sumxy - sumx * sumy) / denom;
b = (sumy * sumx2 - sumx * sumxy) / denom;
end
endfunction