天天看點

用多項式拟合曲線,估計曲線值

【寫在前面】

今天要用matlab處理一些資料

%distance=sort(distance);
%distance=distance';

%hight=sort(hight);
%hight=hight';%預處理資料hight為y軸 distance為x軸 均為一階行矩陣

plot(distance,hight,'b*-','LineWidth',2,'MarkerSize',15);
%畫出原始資料點 藍色折線星點

coeffs=polyfit(distance,hight,5);%計算拟合 5表示用五次多項式拟合
fittedX=linspace(min(distance),max(distance),2000);
%x軸 2000個資料點
fittedY=polyval(coeffs,fittedX);
%y軸
hold on;
plot(fittedX,fittedY,'r-','LineWidth',3);
%用紅色連續線描點

x_o=5:1:100;
y=polyval(coeffs,x_o);
%用拟合出來的多項式估計5~100内 每隔1所輸出的值
csvwrite('distance_coe.txt',y);
%按照csv格式輸出估計的值

x=linspace(0,150,2000);
figure;
plot(x,polyval(coeffs,x))
%畫出0~150範圍内的拟合的曲線 觀察超出150的資料的情況
           

繼續閱讀