有了前面对最小二乘法估计学习过,了解了原理(参考:一元线性回归模型:最小二乘估计),于是用MATLAB看了一下效果,后期再对RANSAC学习一下。
- close all
- clear,clc
-
- x=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18];
- y=[3.75 20.95 19.95 39.3 28.45 36.85 54.40 71.55 68.00 73.85 78.65 73.75 88.25 92.3 85.9 100.2 109.2 114.9];
-
- len = length(x)
-
- ave_x = sum(x(1:len))/len
- ave_y = sum(y(1:len))/len
- A = 0
- B = 0
- hold on;
- for i = 1:length(x)
- plot(x(i),y(i),'rs','MarkerEdgeColor','k','MarkerFaceColor','g','MarkerSize',6)
- %text(x(i),y(i),['(',num2str(x(i),'%5.2f'),',',num2str(y(i),'%5.2f'),')'],'EdgeColor','red','BackgroundColor',[.7 .9 .7],'VerticalAlignment','bottom');
- A = A +(x(i)-ave_x)*(y(i)-ave_y)
- B = B +(x(i)-ave_x)*(x(i)-ave_x)
- end
- b = A/B
- a = ave_y-b*ave_x
- xx = 0:1:20
- yy = a+b*xx
- plot(xx,yy,'r-')
结果如下:
来源: http://blog.csdn.net/chentravelling/article/details/50817774