那个是编程解决的
下面是matlab程序
function [C,R2]=linefit(xin,yin)
if length(yin)~=length(xin),error('x and y are not compatible'); end;
xin=xin(:);yin=yin(:);
A=[xin ones(size(xin))];
C=(A'*A)\(A'*yin);
if nargout>1
r=yin-A*C;
R2=1-(norm(r)/norm(yin-mean(yin)))^2;
end;
C中第一元素为直线斜率,第二个为节距即y=c(1)*x+c(2)
原理仍是残差最小
注:在matlab的库函数中有一个polyfit(x,y,N)可以实现同样的功能,只需要将N设置为1即可。没有具体测试过这个函数与这里提供代码之间的会有否区别
温馨提示:答案为网友推荐,仅供参考