Numpy和Matlab的polyfit结果差异

8

我将在示例数据上调用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

这显然不是数字错误。

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

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

1个回答

5
这将得到相同的结果。
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中可以给你a_array长度内的所有整数,两端都包括在内(如果我没记错的话)。

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


谢谢,我错过了那个微小的细节! - Sebastian Kramer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接