matlab怎样过原点作直线拟合

matlab怎样过原点作直线拟合
要求截距为零的强制过原点线性拟合
如果是这样一组数据,怎样弄呢?
x=[132.63 275.08 458.4 722.24 868.01]
y=[2.53 5.32 8.75 13.805 16.56]

%=============================
%答案已经修改了
%=============================
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)])
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-03-07
>> k=y/x;
>> yy=k*x;
>> plot(x,y,'r*',x,yy) %红点为原始数据,蓝线为拟合直线
第2个回答  2009-03-07
选择matlab中的左下角start——toolboxes——curve fitting——curve fitting tool,要是全告诉你也不好说,之后的事情就靠你自己去学了。
第3个回答  2009-03-06
设拟合的直线为y=kx
k=∑XY / ∑X^2

matlab怎样过原点作直线拟合
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)])

matlab怎样过原点作直线拟合要求截距为零的强制过原点线性拟合
clc,clear all;% 生成待回归数据x=0:10;y=x+rand(1,11);plot(x,y,'o');fun=@(a,x)a*x; a=lsqcurvefit(fun,0,x,y);%回归直线x1=0:0.1:10;y1=a*x1;hold on; plot(x1,y1,'r-');

matlab如何做线性拟合
方法一 1、最常用的是多项式拟合,采用polyfit函数,在命令窗口输入自变量x和因变量y。2、以二次多项式拟合为例,输入p=polyfit(x,y,2),如果想拟合更高次的多项式,更换括号内数字即可。方法二 1、在MATLAB自带的曲线拟合工具包上方工具栏选取APPS,点击curve fitting。在上方工具栏选取APPS,点击curve ...

matlab如何做线性拟合
首先,最常用的线性拟合可以通过内置的多项式拟合功能实现。在命令窗口中,输入自变量x和因变量y,使用polyfit函数进行操作。例如,若要进行二次多项式拟合,只需键入p = polyfit(x,y,2)。若需拟合更高阶的多项式,只需调整括号中的数字即可。另一种方法是利用MATLAB自带的曲线拟合工具。在APPS选项中,找...

用MATLAB怎么将数据拟合成直线?
matlab 自带有cftool toolbox。在command window里面输入 cftool,回车就能打开工具箱了。如下图:可以看到左边有x data, y data, z data; 如果是二维拟合,那么只需要x,y, 三维拟合就需要增加z data。 点击中间的interpolant,下拉是拟合的方式选择:种类非常之多,选择完之后,就可以看到拟合的公式,...

matlab 通过原点 的直线拟合
>> x=[1;2;3;6;8];>> y=[1;2;3;4;5];>> b=regress(y,x)b = 0.6842 所以y=0.6842x

在MATLAB中,已知两组数据x y,怎样通过线性拟合,使得到的三次拟合多项...
过原点的拟合 General model:f(x) = x*(p1*x^2 + p2*x + p3)Coefficients (with 95% confidence bounds):p1 = 0.0112 (0.008154, 0.01426)p2 = -0.344 (-0.4119, -0.2761)p3 = 3.342 (2.981, 3.702)Goodness of fit:SSE: 5.35 R-square: 0.8906 Adjuste...

用MATLAB怎么将数据拟合成直线?
函数polyfit用于多项式曲线拟合\\x0d\\x0ap=polyfit(x,y,m)\\x0d\\x0a其中,x,y为已知数据点向量,分别表示横,纵坐标,m为拟合多项式的次数,结果返回m次拟合多项式系数,从高次到低次存放在向量p中.\\x0d\\x0a利用y0=polyval(p,x0),可求得多项式在x0处的值y0\\x0d\\x0a\\x0d\\x0a源程序如下...

matlab做一组数据的拟合直线,
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...

matlab中如何把边缘检测出来的图像进行直线拟合
用sobel,canny算子都可以提取出边缘;提取出边缘再进行im2bw二值化,得到二值化后的0,1图像;1的图像本质上是由离散的点构成,将离散的点的x,y坐标找出,可以用find命令,例如[x,y]=find(I==1);最后用cftool曲线拟合工具箱,拟合出所有的x,y的坐标点;大致这么个思路,往这方面使劲,基本上就可以搞定....

相似回答