急求解...希望大大能夠耐心看或給我個方向...
標題有點朦朧...
我的意思是:
如果現在有10筆時間點的資料
1989 10 20
1989 12 10
1990 11 18
1991 12 21
1992 02 17
1994 01 05
1998 06 06
1999 05 17
1999 11 20
2000 01 17
【以下是我的想法,邏輯概念很差@@ 如果想法太爛請大大看最下面的「目的」就可以了】
我想要找出每個時間點增減半年都沒有和其他資料重疊的時間點資料,
若是有重疊,相關的也有重疊,那就全部算一組
(我只想要一組之中,「頭」和「尾」的資料即可)。
也就是說第一個資料增減半年的範圍之中,和第二筆增減半年範圍有重疊到,
第二筆又跟第三筆有重疊,但第三組和第四組就沒有重疊了。
(增減一年看有沒有包括其他筆資料,就可以知道有沒有重疊到。)
那一二三筆算一組,然後我只要取一和三(頭和尾)的資料就好。
分組完的結果會是這樣↓
第[(1 2 3) (4 5) 6 (7 8 9 10)]資料
然後每組取頭尾
第[1 3 4 5 6 7 10]資料
依此類推最後我想要找到的資料(矩陣)是:
1989 10 20
1990 11 18
1991 12 21
1992 02 17
1994 01 05
1998 06 06
2000 01 17
請問這種要怎麼寫呀?我用 || & 邏輯符號來求是否在範圍內(不知道有沒有更好的方法)
但我只會用max, min, find互相搭配
也只能找到被分組後的最大和最小而已...
(像剛剛那筆我只能找到[1 6 10])
一直碰到瓶頸...
寫了兩個禮拜了寫不出來...
【目的】現在有37萬筆這個時間資料的矩陣(370000x4)。
出現在上面那10筆
1989 10 20
1989 12 10
1990 11 18
1991 12 21
1992 02 17
1994 01 05
1998 06 06
1999 05 17
1999 11 20
2000 01 17
時間點前後增加減半年的資料個數N和時間T(天數)。
如果不好理解,請看這張圖
![]()
我的那個想法是用那七筆資料位置找出第幾個資料,
譬如說第一筆1989 4 20(1989 10 20半年前)的資料在271054
最後一筆1991 5 17(1990 11 18半年後)的資料在310101
這樣這兩個時間點之間的資料數就有310101-271054個。
然後再把每個區間的個數n、時間t相加起來得到總數個N和總時間T。
但這個算法天數不好求得...沒辦法一起算@@
我是想用switch來寫30天或31天、是否為閏年...阿...好麻煩。
麻煩各位神人給小弟我給我個方向...
或是有更好的方法...@@
不然學校根本沒人可以問...(大家都是自學,懂皮毛,一般只會自己的程式而已@@)