为什么matlab做线性拟合出来曲线图?

用matlab做线性回归,得到y=7.743+0.334*x1,但拟合出的图像确是曲线图,不是一条直线,为什么?代码:clearx1=[3795.883596.83338... 用matlab做线性回归,得到y=7.743+0.334*x1,但拟合出的图像确是曲线图,不是一条直线,为什么?代码:clearx1=[3795.88 3596.83 3380.36 3214.87 3027.33 2789.11 2705.31 2560.41 2414.08 2257.96 2072.96 1889.1 1747.72 1543.77 1383.52 1179.38 1030.48 889.26 742.37 508.7 420.7 381.53 264.24 186.77 170.1 112.94 83.74 45.45 -10.28 22.11 13.97 -0.53 31.56 36.2 26.57 0.82 6.63 7.65]y=[1211.04 1204.91 1152.16 1072.96 1024.51 949.92 922.01 875.94 825.68 759.6 707.71 653.46 595.82 533.53 474.21 418.02 366.22 314.83 258.97 184.52 142.99 125.64 89.68 69.01 59.67 46.82 30.27 15.52 8.56 10.32 9.85 9.08 7.98 7.43 7.68 8.96 7.63 7.13]X=[ones(length(y),1),x1'];Y=y'[b,bint,r,rint,stats]=regress(Y,X)rcoplot(r,rint)z=b(1)+b(2)*x1plot(X,Y,'k+',X,z,'r')t=1:38figure(1);y_fitting=X(t,:)*b;plot(t,y_fitting,'r-',t,Y(t,:),'b-');legend('Rot-Schätzung','Blau-Ist-wert'); 展开
 我来答
lhmhz
高粉答主

2021-01-25 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7263 获赞数:17001

向TA提问 私信TA
展开全部

为什么matlab做线性拟合出来曲线图?

分析了题主的代码,用regress函数来拟合线性函数是对的,按在出图时,出现了概念性的错误,即 plot(X,Y,'k+',X,z,'r')。

题主这里表示的X和Y实际上是线性拟合中计算时的线性方程组系数,而不是原试验数据。

所以,正确的表述格式是

plot(x1,y,'k+',x,z,'r')

同理,下列语句也有问题

t=1:38

y_fitting=X(t,:)*b;

y_fitting=b(1)+b(2)*x;

plot(t,y_fitting,'r-',t,Y(t,:),'b-');

正确的写法为:

Y=y';

X=[ones(length(y),1),x'];

[b,bint,r,rint,stats]=regress(Y,X);

z=b(1)+b(2)*x;

str = ['y=b1+b2*x']; %显示拟合方程

fprintf('%s\n',str);

str = ['b1=',num2str(b(1)),',b2=',num2str(b(2))];

fprintf('%s\n',str); %显示拟合系数

stats % 检验统计量

plot(x,y,'k+',x,z,'r') %绘制原数据与拟合数据的对比图

legend('Rot-Schätzung','Blau-Ist-wert');

运行结果如下所示。

东莞大凡
2024-08-07 广告
在东莞市大凡光学科技有限公司,我们利用Halcon软件处理机器视觉项目时,会用到自定义标定板以满足特定需求。Halcon支持用户根据实际应用场景自定义标定板形状与标记点。这不仅可以灵活应对不同工作环境,还能提高标定精度。通过调整圆点数量、间... 点击进入详情页
本回答由东莞大凡提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式