MATLAB 離散點的圓弧擬合

2021-08-21 13:14:16 字數 640 閱讀 3590

最近做專案,會遇到很多資料擬合的問題,通常在網上搜尋時會看到很多**,乙個個嘗試有對有錯,下面根據專案進展情況總結一下用到的相關知識。都是由本人親測,雖然簡單但是絕對正確的**。

首先是圓弧擬合的**,由離散點擬合:t1為二維矩陣,t1的第一行為x軸的資料點,t1的第二行為y軸的資料點,用**表示為:t1(1,:)=x,t1(2,:)=y,將資料匯入到程式中執行即可得到離散點的半徑和圓心。

圓弧擬合實現**:

%% 擬合圓弧

x=t1;

n=length(x(:,1));

y=ones(n,1);

b=[rand(1)*1000  rand(1)  rand(1)];

fun=inline('x(:,1).^2+x(:,2).^2+a(1)*x(:,1)+a(2)*x(:,2)+a(3)','a','x');

[a,r,j] = nlinfit(x,y,fun,b);

vpa(a,10)

% %圓心

x1 =-a(1)/2,y1 =-a(2)/2

% %半徑

r =sqrt(a(1)^2+a(2)^2-4*a(3))/2

另外,資料可以儲存在txt中,然後用a=load('1.txt')匯入到matlab中。

matlab進行離散點的曲線擬合

ployfit是matlab中基於最小二乘法的多項式擬合函式。最基礎的用法如下 c polyfit x,y,n 其中 x 需要擬合的點的橫座標 y 需要擬合的點的縱座標 n 以n階多項式進行擬合 c 返回的n 1個擬合係數。y polyval c,x 其中 c n 1個擬合係數 y 根據x 橫座標 ...

離散點擬合 python

對每個點代入公式求和 for i in range 0 len data x data i,0 y data i,1 tmp w current x b current y b sum tmp w sum tmp x 用公式求當前梯度 grad w 2 m w sum grad b 2 m b su...

halcon測試篇 三點擬合圓弧和圓

已知三個座標點,擬合對應的圓弧和圓。設定圓的寬度 dev set line width 3 dev set draw margin 確定三個點,在視窗上用滑鼠點三個點 draw point 200000 row1,column1 draw point 200000 row2,column2 draw...