标签: 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]。 请给我一些建议。
答案 0 :(得分:2)
在a==1上使用diff。使用false括号以确保无论a的起始值或结束值是多少都是正确的。最后,find每次运行的开始和结束并减去:
a==1
diff
false
a
find
d = diff([false, a==1, false]); result = find(d==-1) - find(d==1);
在你的例子中,这给出了
result = 3 5 1 3