有关matlab画直线
來源:互聯網 2010-04-25 12:39:27 評論
分類: 電腦/網絡 >> 程序設計 >> 其他編程語言
問題描述:
x=[1:5];
y=[2,4,5,7,9];
怎样用matlab拟和成直线
谢谢
參考答案:
可以用两种办法实现,结果一样:
clc;clear
x=1:5;
y=[2 4 5 7 9];
%【1】非线性回归方法
fun=inline('a(1)*x+a(2)','a','x')%规定方程类型
a=nlinfit(x,y,fun,[1 1])%a就是回归系数
x1=x(1):0.05:x(end);%x的间隔更小些
y1=a(1)*x1+a(2);%代入回归方程
plot(x,y,'o',x1,y1)%绘图
%【2】线性回归方法
x2=x(1):0.05:x(end);
pp=polyfit(x,y,1)%pp为回归系数
y2=polyval(pp,x2);%代入回归方程
figure%再画一个图
plot(x,y,'*',x2,y2)
y=poly2sym(pp,'x')%转化为代数方程形式
运行结果:
a =
1.7000
0.3000
pp =
1.7000 0.3000
y =1.7*x+0.3
[b]分类:[/b] 电脑/网络 >> 程序设计 >> 其他编程语言[br][b]问题描述:[/b][br]x=[1:5];
y=[2,4,5,7,9];
怎样用matlab拟和成直线
谢谢[br][b]参考答案:[/b][br]可以用两种办法实现,结果一样:
clc;clear
x=1:5;
y=[2 4 5 7 9];
%【1】非线性回归方法
fun=inline('a(1)*x+a(2)','a','x')%规定方程类型
a=nlinfit(x,y,fun,[1 1])%a就是回归系数
x1=x(1):0.05:x(end);%x的间隔更小些
y1=a(1)*x1+a(2);%代入回归方程
plot(x,y,'o',x1,y1)%绘图
%【2】线性回归方法
x2=x(1):0.05:x(end);
pp=polyfit(x,y,1)%pp为回归系数
y2=polyval(pp,x2);%代入回归方程
figure%再画一个图
plot(x,y,'*',x2,y2)
y=poly2sym(pp,'x')%转化为代数方程形式
运行结果:
a =
1.7000
0.3000
pp =
1.7000 0.3000
y =1.7*x+0.3