matlab做一组数据的拟合直线,

2025年03月12日 15:38
有1个网友回答
网友(1):

你这个程序是对的呀,也只是有一点的小毛病呀

clear all

%线性拟合的程序:

x=[15 15.2 15.4 15.6 15.8 16 16.2 16.4 16.6 16.8]; 

y=[0.01 0.015 0.019 0.024 0.03 0.036 0.041 0.047 0.052 0.057];

p=polyfit(x,y,1); 

yfit=polyval(p,x);

 figure(1); 

plot(x,y,'r*',x,yfit,'b-');

legend('原始数据','拟合直线');

 xlabel('X/mm'); 

ylabel('V/mV');

 grid on 

%在计算非线性误差过程中,需要求实际输出值与拟合直线输出值的最大偏差,这也可通过编程实现, 

yerr=y-yfit;

[C I]=max(yerr);

figure(2)

scatter(x,yerr,'o');

hold on 

plot(x,yerr,'r-');

xlabel('X/mm')

ylabel('V/mV') 


grid on