2014-06-16 34 views
1

我有一個系列a = [100 200 1 1 1 243 300 1 1 1 1 1 400 1 900 600 900 1 1 1] 我必須計算出現1次時發生的次數在組中。 第一組1,總和爲3(位於200和243之間)。 300到400之間的第二組數是5.每組中所有數之和是[3 5 1 3]。 請給我一些建議。計數羣系列

+0

參見[SplitVec](http://www.mathworks.com/matlabcentral/fileexchange/ 24255-consecutive-vector-spliter/content/SplitVec.m)和[this](http://stackoverflow.com/a/6549883/1586200) –

回答

2

a==1上使用diff。與false的支架,以確保計數是正確的,無論a的開始或結束值。最後,find開始和每個運行的結束,subract:

d = diff([false, a==1, false]); 
result = find(d==-1) - find(d==1); 

在您的例子這給

result = 
    3  5  1  3 
+0

非常感謝Luis Mendo。它有幫助。 –