How to do this below?

1 回表示 (過去 30 日間)
Mibang
Mibang 2024 年 2 月 6 日
コメント済み: Voss 2024 年 2 月 6 日
Suppose you have a binary sequence:
a = [0 0 1 1 1 0 0 1 1 1 1 0 0 0];
And, how can you abtain a sequence b from a?
b = [0 0 3 0 0 0 0 4 0 0 0 0 0 0];
That is, place the sum of the consequtive ones at the first location of the consecutive ones.
And, make zeros for all the other locations of ones.
Thank you,

採用された回答

Voss
Voss 2024 年 2 月 6 日
One way:
a = [0 0 1 1 1 0 0 1 1 1 1 0 0 0]
a = 1x14
0 0 1 1 1 0 0 1 1 1 1 0 0 0
b = zeros(1,numel(a));
s_idx = strfind([0 a],[0 1]);
e_idx = strfind([a 0],[1 0]);
b(s_idx) = e_idx-s_idx+1;
b
b = 1x14
0 0 3 0 0 0 0 4 0 0 0 0 0 0
  2 件のコメント
Mibang
Mibang 2024 年 2 月 6 日
Genius! thanks.
Voss
Voss 2024 年 2 月 6 日
You're welcome!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeCharacters and Strings についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by