同步具有不同的時間戳的時間序列,以用戶定義的間隔與分配的值假定以下時間序列(TS):平均和在MATLAB
time val
15:00 4
15:45 7
17:12 2.3
17:50 2.9
從時間戳,每個值都是有效的,直到下一個出現。因此,從15:00到15:45的值是4或從15:45到17:12是2.3。這些時間戳之間的每個新數據點應具有相同的值。我想要的是一個新的ts,具有恆定的時間間隔和預定義的起始點。假設起點爲15:00,間隔應爲30分鐘。通常情況下,我可以使用同步函數 - 但是,函數使用插值方法,這不是我在這裏需要的,因爲數據點之間的值不應該被內插,但是如果時間戳重疊,則應該取平均值。
新的TS應該是這樣的:
time val
15:00 4
15:30 5.5
16:00 7
16:30 7
17:00 4.18
的值在時刻15:30被計算爲=(4 * 15 + 7 * 15)/ 30,等等。我已經實現了一個代碼,可以通過將trapz函數與if語句結合使用來解決這個問題。但是,我想知道是否有更好/更簡單的解決方案,作爲修改的同步功能,因爲我有超過500.000個數據點。
在此先感謝
當你做平均值時,它與做插值(它的實際線性插值)幾乎相同。你的平均16:00和16:30都是7,這是如何工作的? – GameOfThrows
是正確的,但不適用於時間戳內的其他時間戳(例如源自15:45時間戳的新時間戳16:00)。 16:00的價格從16:00至16:30有效,16:30的有效期至17:00有效。從原始數據集中獲得的值爲7(從15:45時間戳到有效時間爲17:12) – Jonas
我認爲在這種情況下,您希望在插值之前舍入到最近的時間戳。 – GameOfThrows