直線擬合 matlab基礎直線擬合

2021-10-16 03:14:33 字數 893 閱讀 7351

本文介紹利用矩陣除法進行最小二乘直線擬合

%%%矩陣除法最小二乘直線擬合的函式檔案,參考matlab2018從入門到精通(中文版)

function [k,b]=linefit(x,y)

n=length(x);

x=reshape(x,n,1);%生成列向量

y=reshape(y,n,1);

a=[x,ones(n,1)];

bb=y;

b=a'*a;

bb=a'*bb;

yy=b\bb;

k=yy(1);

b=yy(2);

end求解案列:

x=[0.5 1 1.5 2 2.5 3];

y=[1.75 2.45 3.81 4.8 8 8.6];

[k,b]=linefit(x,y);

y1=polyval([k,b],x);

plot(x,y,'*',x,y1,'r-','linewidth',2);

xlabel('x');ylabel('y');

執行結果:

%%還可以使用polyfit命令

x=[0.5 1 1.5 2 2.5 3];

y=[1.75 2.45 3.81 4.8 8 8.6];

a1=polyfit(x,y,1);%1階多項式最小二乘擬合

y1=polyval(a1,x);

plot(x,y,'*',x,y1,'g-','linewidth',2);

執行結果:

擬合專題 直線擬合

閒來無事,整理下擬合方面的一些方法 部分內容參考gloomyfish grooveboy等部落格,在此先行謝過 直線擬合方法主流方法有最小二乘 hough兩種,其他如halcon上的最小距離也是最小二乘的思想,其他如hough變換和最小二乘結合 混沌粒子群結合等等 1 最小二乘擬合直線 曲線擬合中最...

OpenCV直線擬合

摘抄自 opencv 提供的直線擬合函式。函式原型如下 void fitline inputarray points,outputarray line,int disttype,double param,double reps,double aeps disttype 指定擬合函式的型別,可以取 c...

Opencv 擬合直線

最小二乘法是勒讓德 a.m.legendre 於1805年在其著作 計算慧星軌道的新方法 中提出的。最小二乘法就是通過最小化誤差的平方和,使得擬合物件無限接近目標物件。在影象處理中主要用於擬合線,通過求取樣點距離誤差最小的線,可以是直線,曲線,橢圓,圓等。求解方法目前分為多項式和概率 最大似然 估計...