统计一组串联的

时间:2014-06-16 21:53:15

标签: matlab

我有一个系列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]。 请给我一些建议。

1 个答案:

答案 0 :(得分:2)

a==1上使用diff。使用false括号以确保无论a的起始值或结束值是多少都是正确的。最后,find每次运行的开始和结束并减去:

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

在你的例子中,这给出了

result =
     3     5     1     3