我想從向量中的最後一個位置開始計算向量中的連續向量個數。如何從Matlab中的最後一個位置開始計算向量中的連續向量數
例如在a=[0 1 0 1 0 1]
數個連續的的是1
在b = [1 0 0 1 1 1]
個連續的次數爲3,
我想從向量中的最後一個位置開始計算向量中的連續向量個數。如何從Matlab中的最後一個位置開始計算向量中的連續向量數
例如在a=[0 1 0 1 0 1]
數個連續的的是1
在b = [1 0 0 1 1 1]
個連續的次數爲3,
試試這個:
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))
太好了。謝謝 – NikolaC
沒問題,如果這個工作,那麼你應該考慮[接受它](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) – Dan
我想你的解決方案但它不起作用 – User1551892
對於一個情況下,你可能已經在輸入尾隨零 -
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
a''是否只包含'1'和'0'? – Dan
我只需要從矢量中最後一個位置開始的連續數。示例c = [0 0 1 1 0 1 1 1 1]。這個數字是4 – NikolaC
這根本不回答問題。你的向量可以包含「1」或「0」以外的數字嗎?例如這是你的操作的有效載體:'d = [0 1 1 0 2 1 1]'? – Dan