我想计算向量中最后一个位置的向量中的连续数。
例如,a=[0 1 0 1 0 1]
个连续的数目是1.
在b = [1 0 0 1 1 1]
个连续的数目是3.
答案 0 :(得分:2)
对于一个案例,当输入中可能有尾随零时
find(A,1,'last') - find(diff(A)==1,1,'last')
示例运行 -
>> A = [0,1,1,0,0,0,1,1,1,1,1,0,0]
A =
0 1 1 0 0 0 1 1 1 1 1 0 0
>> find(A,1,'last') - find(diff(A)==1,1,'last')
ans =
5
答案 1 :(得分:1)
试试这个:
sum(a(find(diff(a),1,'last')+1:end))
或者如果您想忽略尾随的0
,那么
sum(a(find(diff(a)==1,1,'last')+1:end))
如果您希望在a
仅包含1
时使用此功能,那么我建议
sum(a(find(diff([0,a])==1,1,'last'):end))