%=============================
%答案已经修改了
%=============================
clc;clear;close;
%既然知道是线性的而且要过原点,
% 所以方程就是y=a*x的形式
x=[132.63 275.08 458.4 722.24 868.01];
y=[2.53 5.32 8.75 13.805 16.56];
func=inline('a*x','a','x');
a0=2;%fit的初始值
a=nlinfit(x,y,func,a0);%这个a就是斜率了
xf=linspace(min(0,min(x)),max(x),10);
yf=a*xf;
plot(x,y,'rs');%画原始数据
hold on
plot(xf,yf);%画拟合曲线
axis(1.1*[min(0,min(x)) 1.1*max(x) 1.1*min(0,min(y)) 1.1*max(yf)])
legend('原始数据','拟合曲线',2)
disp(['斜率= ' num2str(a)])
>> k=y/x;
>> yy=k*x;
>> plot(x,y,'r*',x,yy) %红点为原始数据,蓝线为拟合直线
选择matlab中的左下角start——toolboxes——curve fitting——curve fitting tool,要是全告诉你也不好说,之后的事情就靠你自己去学了。
设拟合的直线为y=kx
k=∑XY / ∑X^2