python - Numpy 和 matlab polyfit 结果差异

标签 python matlab numpy

在示例数据集上调用 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 结果?

最佳答案

这给出了相同的结果。

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 的长度,包括两端。如果我没记错的话)

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

关于python - Numpy 和 matlab polyfit 结果差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21806129/

相关文章:

python - Tkinter 和 PIL 调整图像大小以适合标签

python - 将文件夹目录中的所有 .csv 文件复制到 python 中的一个文件夹中

matlab - 将字符串转换为数组编号

database - MATLAB : why am I not getting the SQL result back in the cursor object?

python - 如何使用 NumPy 从文件中读取复数?

python - 访问 Numpy 矩阵的下三角?

python - 具有随机 id 变量的 Pandas Wide_to_long

matlab - 在静默模式下从 CMD 激活 winrar

python - 多次调用函数的返回值不同

python - Edgecolor 未出现在 Seaborn 条形图中