我试图确定一个值是否在向量中顺序重复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