如何从Matlab中的最后一个位置计算向量中的连续数

时间:2015-11-17 10:58:21

标签: matlab

我想计算向量中最后一个位置的向量中的连续数。

例如,a=[0 1 0 1 0 1]个连续的数目是1.

b = [1 0 0 1 1 1]个连续的数目是3.

2 个答案:

答案 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))