雖然每個週期的持續時間和內容彼此不同,但我有一個重複信號,其大小每秒重複一次,一些參數內的一點點。我的每個信號數據都有一千個x,y座標。每個週期內的一小部分但重要的數據段已損壞,並且我想用向上的拋物線替換每個已損壞的段。使用numpy在重複信號的一部分內繪製拋物線
對於需要被拋物線替換的每個數據段,我有三個點的x,y座標。頂點/最小值就是其中的一個點。另外兩點是向上的U形的拋物線的左右頂部。換句話說,左上方是該函數域中x值最低的x,y座標對,右上方是該函數域中x值最高的x,y座標對。左上角和右上角的y座標彼此相等,並且是數據段中兩個最高的y值。
如何編寫代碼來繪製這個向上拋物線中的剩餘數據點?請記住,對於每一分鐘的數據,這個函數需要被調用60或70次,並且每次調用這個函數時拋物線的形狀/公式都需要改變,以便說明這三對之間的不同關係在每個拋物線中的x,y座標。
def ReplaceCorruptedDataWithParabola(Xarray, Yarray, LeftTopX, LeftTopY
, LeftTopIndex, MinX, MinY, MinIndex
, RightTopX, RightTopY, RightTopIndex):
# Step One: Derive the formula for the upward-facing parabola using
# the following data from the three points:
LeftTopX,LeftTopY,LeftTopIndex
MinX,MinY,MinIndex
RightTopX,RightTopY,RightTopIndex
# Step Two: Use the formula derived in step one to plot the parabola in
# the places where the corrupted data used to reside:
for n in Xarray[LeftTopX:RightTopX]:
Yarray[n]=[_**The formula goes here**_]
return Yarray
注:Xarray和Yarray與每個兩個陣列鏈接作爲套X,y座標的索引處數據的每個單列向量。它們都是numpy數組。 Xarray包含時間信息並且不會改變,但Yarray包含信號數據,包括將被替換爲需要由此函數計算的拋物線數據的損壞段。
+ 1個不錯的答案。 – zellus 2010-10-30 18:34:11