【问题标题】:Numpy and matlab polyfit results differencesNumpy 和 matlab polyfit 结果差异
【发布时间】:2014-02-16 01:35:26
【问题描述】:

在示例性数据集上调用 numpy.polyfit 和 matlab polyfit 函数时,我得到了不同的结果:

Python3.2:

(Pdb) a_array = [1, 2, 4, 6, 8,7, 9]
(Pdb) numpy.polyfit( range (len (a_array)), a_array, 1)
array([ 1.35714286,  1.21428571])

Matlab:

a_array = [1, 2, 4, 6, 8,7, 9]
polyfit(1:1:length(a_array), a_array, 1)

ans =
    1.3571   -0.1429

这显然不是数字错误。

我假设 Python 和 matlab 之间某些特殊选项(如 std 函数中的 ddof)的默认值不同,但我找不到它。或者我应该使用另一个版本的 Python 的 polyfit?

如何在 Python Numpy 和 Matlab 中获得相同的 polyfit 结果?

【问题讨论】:

    标签: python matlab numpy


    【解决方案1】:

    这给出了相同的结果。

    In [10]: np.polyfit(range(1, len(a_array)+1), a_array, 1)
    Out[10]: array([ 1.35714286, -0.14285714])
    

    range(...) 如果你不给它一个开始参数,它从零开始,并且不包括结束点。

    1:1:length(a_array) 在 Matlab 中应该给你 1 到 a_array 的长度,包括两端。如果我没记错 Matlab)

    插值线常数的差异仅仅是因为 x 轴的起始值不同。

    【讨论】:

    • 谢谢,我错过了那个小细节!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-08
    • 2018-11-05
    • 1970-01-01
    • 2013-09-02
    • 2011-07-21
    • 2021-07-24
    • 2023-01-13
    相关资源
    最近更新 更多