查看: 393|回复: 4|关注: 0

[已解决] 尴尬:polyfit同样的数据,结果差别太大

[复制链接]

论坛优秀回答者

中级

650 麦片

财富积分


5001500


22

主题

957

帖子

110

最佳答案
  • 关注者: 9
>> x =1:10;
y =1:10;
p = polyfit(x,y,1);
>> p


p =


     1     0


>> clear
>> lengthm = 1:10;
thicknessdata =1:10;
[p,S,mu] = polyfit(lengthm,thicknessdata,1);
>> p


p =


   3.027650354097490   5.499999999999999


回复主题 已获打赏: 0 积分

举报

MATLAB 基础讨论
版块优秀回答者

中级

509 麦片

财富积分


5001500


1

主题

163

帖子

63

最佳答案
  • 关注者: 7
发表于 2020-4-9 00:52:15 | 显示全部楼层 |此回复为最佳答案
本帖最后由 gopher 于 2020-4-9 01:48 编辑

你好,polyfit 的帮助文档有如下描述:
0.png
大意是,在求多项式系数之前,它对输入的 x 参数做了一个线性变换,变为 xhat,xhat 的均值为 0,标准差为 1。所以你的第二个例子得出的结果是以 xhat 为横坐标的。

为了验证这一点,我们可以自己构造这个 xhat,然后用普通的方法求系数 p,对比二者的结果是否相等。
  1. >> x =1:10;

  2. mu = mean(x);           % 均值
  3. sigma = std(x);         % 标准差
  4. xhat = (x-mu)/sigma;    % 新的输入横轴

  5. y =1:10;
  6. p = polyfit(xhat,y,1)

  7. p =

  8.   Column 1

  9.           3.02765035409749

  10.   Column 2

  11.                        5.5
复制代码
你看,这结果就和
  1. [p,S,mu] = polyfit(lengthm,thicknessdata,1)
复制代码
的结果是一致的了。


回复此楼 已获打赏: 0 积分

举报

论坛优秀回答者

中级

650 麦片

财富积分


5001500


22

主题

957

帖子

110

最佳答案
  • 关注者: 9
 楼主| 发表于 2020-4-10 22:45:41 | 显示全部楼层
gopher 发表于 2020-4-9 00:52
你好,polyfit 的帮助文档有如下描述:

大意是,在求多项式系数之前,它对输入的 x 参数做了一个线性变换 ...

首先给您点赞,不过我需要的结果
>> x =1:10;
y =1:10;
p = polyfit(x,y,1);
>> p


p =


     1     0
怎么确保p =1,0;
回复此楼 已获打赏: 0 积分

举报

MATLAB 基础讨论
版块优秀回答者

中级

509 麦片

财富积分


5001500


1

主题

163

帖子

63

最佳答案
  • 关注者: 7
发表于 2020-4-10 22:52:45 | 显示全部楼层
onlye_caisA 发表于 2020-4-10 22:45
首先给您点赞,不过我需要的结果
>> x =1:10;
y =1:10;

在使用 polyfit 函数时,只使用一个输出参数就可以了呀
回复此楼 已获打赏: 0 积分

举报

论坛优秀回答者

中级

650 麦片

财富积分


5001500


22

主题

957

帖子

110

最佳答案
  • 关注者: 9
 楼主| 发表于 2020-4-10 22:59:01 | 显示全部楼层
gopher 发表于 2020-4-10 22:52
在使用 polyfit 函数时,只使用一个输出参数就可以了呀

多谢,点赞+最佳
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表