How can I count the number of 1 after every element of the vector?

2 ビュー (過去 30 日間)
Nicolò Castellani
Nicolò Castellani 2020 年 2 月 17 日
編集済み: Stephen23 2020 年 2 月 17 日
I have this vector of 1 and 0:
X= [1 1 1 1 0 0 1 1 0 1 0 1 0 0 1 1]
I want to create a vector Y that counts for every element of X the number of 1 that there are after it (including the 1 of the element, if is 1)
So the vector Y should be:
Y=[4 3 2 1 0 0 2 1 0 1 0 1 0 0 2 1]
How can I do that?
thank you!

採用された回答

Stephen23
Stephen23 2020 年 2 月 17 日
編集済み: Stephen23 2020 年 2 月 17 日
>> X = [1,1,1,1,0,0,1,1,0,1,0,1,0,0,1,1]
X =
1 1 1 1 0 0 1 1 0 1 0 1 0 0 1 1
>> Z = cumsum([true,diff(X)>0]);
>> F = @(v){flip(cumsum(flip(v)))};
>> Y = cell2mat(accumarray(Z(:),X(:),[],F)).'
Y =
4 3 2 1 0 0 2 1 0 1 0 1 0 0 2 1

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeNaNs についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by