0
例如,給定一個矢量[1,2,3,4,5],如何用線性插值將矢量上採樣到某個長度,例如python中的45 。如何在python中將矢量上採樣到一定長度
例如,給定一個矢量[1,2,3,4,5],如何用線性插值將矢量上採樣到某個長度,例如python中的45 。如何在python中將矢量上採樣到一定長度
如果它是線性的,每個新元素之間應該有一個不斷的增加或減少。在你的情況下,它是一個。因此,請對兩個元素之間的差異進行採樣,然後將其添加到最後一個元素,但要多次。
a = [1,2,3,4,5]
num_add = 45 -len(a)
b = a[1] - a[0]
for z in range(1,num_add):
a.append(b + a[-1])
我認爲這應該可行,雖然你可能必須玩的範圍。
好吧,我把你的清單[1, 2, 3, 4, 5]
解釋爲一個簡單的例子。如果你想要一個腳本來實際插入你給它的系列,試試這個:
from scipy.optimize import curve_fit
import numpy as np
# Line equation - doesn't have to be linear
def lin_eq(x, m, b):
return x*m + b
# Your actual data
std_y = np.array([1, 2, 3, 4, 5])
# Index of data
std_x = np.arange(1, len(std_y) + 1)
popt, pcov = curve_fit(lin_eq, std_x, std_y)
top = 45
# Index of projected data
proj_x = np.arange(1, top + 1)
# Interpolated data
proj_y = lin_eq(proj_x, *popt)
print proj_y
[ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30.
31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45.]