2015-11-17 93 views
2

我想從向量中的最後一個位置開始計算向量中的連續向量個數。如何從Matlab中的最後一個位置開始計算向量中的連續向量數

例如在a=[0 1 0 1 0 1]數個連續的的是1

b = [1 0 0 1 1 1]個連續的次數爲3,

+0

a''是否只包含'1'和'0'? – Dan

+0

我只需要從矢量中最後一個位置開始的連續數。示例c = [0 0 1 1 0 1 1 1 1]。這個數字是4 – NikolaC

+2

這根本不回答問題。你的向量可以包含「1」或「0」以外的數字嗎?例如這是你的操作的有效載體:'d = [0 1 1 0 2 1 1]'? – Dan

回答

1

試試這個:

sum(a(find(diff(a),1,'last')+1:end)) 

,或者如果你想忽略尾隨0 s then

sum(a(find(diff(a)==1,1,'last')+1:end)) 

如果你想要這個工作的時候a只包含1當時的我會建議

sum(a(find(diff([0,a])==1,1,'last'):end)) 
+0

太好了。謝謝 – NikolaC

+0

沒問題,如果這個工作,那麼你應該考慮[接受它](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) – Dan

+0

我想你的解決方案但它不起作用 – User1551892

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 
相關問題