How to remove repeated values mantaining the first one from an array ?

I have something like:
10000111111111011011100000111011000111111011000000010101011111111....
how to:
00000100000000010010000000100010000100000010000000000000010000000....
The second repetition makes the beggining of a series.

回答 (2 件)

Sean de Wolski
Sean de Wolski 2014 年 12 月 8 日

0 投票

abs(diff('0000111001111101101'))

1 件のコメント

Guillaume
Guillaume 2014 年 12 月 8 日
Hum, it looks like the OP only wants the transitions from 0 to 1 (which would be diff(x) > 0) but only when there's more than one consecutive 1 (which is not as simple unfortunately).
Guillaume
Guillaume 2014 年 12 月 8 日

0 投票

s = '10000111111111011011100000111011000111111011000000010101011111111'
o = char('0' + ([0 diff(s) > 0] & [~diff(s) 0]))

この質問は閉じられています。

タグ

質問済み:

2014 年 12 月 8 日

閉鎖済み:

2021 年 8 月 20 日

Community Treasure Hunt

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

Start Hunting!

Translated by