movvar(A, k, w)使用python/numpy/pandas計算移動平均值的MATLAB函式的等價性是什么?
我嘗試pandas.rolling.mean()使用 Matlab 檔案中的這個示例,但結果不一致:
A= [4, 8, 6, -1, -2, -3, -1, 3, 4, 5]
a = pd.Series(A)
print(a.rolling(window=3).mean())
0 NaN
1 6.000000
2 4.333333
3 1.000000
4 -2.000000
5 -2.000000
6 -0.333333
7 2.000000
8 4.000000
9 NaN
dtype: float64
# using Matlab
M = movvar(A, k=3, w=1)
M = 1×10
4.0000 2.6667 14.8889 12.6667 0.6667 0.6667 6.2222 4.6667 0.6667 0.2500
uj5u.com熱心網友回復:
你需要rolling.var與指定center=True及min_periods=1中rolling和ddof=0在var
print(a.rolling(3, center=True, min_periods=1).var(ddof=0))
0 4.000000
1 2.666667
2 14.888889
3 12.666667
4 0.666667
5 0.666667
6 6.222222
7 4.666667
8 0.666667
9 0.250000
dtype: float64
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/318509.html
