我試圖確定一個值是否在向量中順序重複N次。我面臨的挑戰是它可以在矢量內連續N次重複數次。目的是確定連續多少次某些值落在平均值之上。例如:MATLAB:確定一個值是否在一個向量中順序重複N次
>> return_deltas
return_deltas =
7.49828129642663
11.5098198572327
15.1776644881294
11.256677995536
6.22315734182976
8.75582103474613
21.0488849115947
26.132605745393
27.0507649089989
...
(I只印幾個值例如但所述載體是大的。)
>> mean(return_deltas)
ans =
10.50007490258002
>> sum(return_deltas > mean(return_deltas))
ans =
50
所以有一個值的50個實例中return_deltas
比的return_deltas
平均值大於。
我需要確定的次數,順序地,在return_deltas
的值比在一排它的均值3倍。換句話說,如果return_deltas
中的值連續大於其平均值3次,那就是一個實例。
例如:
---------------------------------------------------------------------
| `return_delta` value | mean | greater or less | sequence |
|--------------------------------------------------------------------
| 7.49828129642663 |10.500074902 | LT | 1 |
| 11.5098198572327 |10.500074902 | GT | 1 |
| 15.1776644881294 |10.500074902 | GT | 2 |
| 11.256677995536 |10.500074902 | GT | 3 * |
| 6.22315734182976 |10.500074902 | LT | 1 |
| 8.75582103474613 |10.500074902 | LT | 2 |
| 21.0488849115947 |10.500074902 | GT | 1 |
| 26.132605745393 |10.500074902 | GT | 2 |
| 27.0507649089989 |10.500074902 | GT | 3 * |
---------------------------------------------------------------------
星形表示3連續成功的序列。這個集合的結果將是兩個,因爲有兩次該值大於連續3次的平均值。
我在想什麼是創建一個新的載體:當然
>> a = return_deltas > mean(return_deltas)
包含那些其中return_deltas
值是大於平均值,並用它來找到多少次順序,在return_deltas
值大於其連續3次的均值。我試圖用內置函數(如果有的話,我沒有發現它)或至少避免循環做到這一點。
有關我如何接近的想法?
這將適用於我的目的,謝謝! – 2012-07-15 19:56:36