フィルターのクリア

How to find repeated values in a column vector

2 ビュー (過去 30 日間)
tiwwexx
tiwwexx 2019 年 6 月 12 日
コメント済み: tiwwexx 2019 年 6 月 14 日
Hello, I'm trying to find every place where a value (1) repeats in a vector and then take only the second time the value repeats. For example if I get the vector (0110011101) I want to get out (0010001000).

採用された回答

Monika Phadnis
Monika Phadnis 2019 年 6 月 13 日
Try following this approach:
Convert vector to string using sprintf. Use regexp to search for repeating 1's. Replace the 1's for 0's except second one.
Try this code:
str = sprintf('%d',vector_name);
[start_index,end_index] = regexp(str,'11[1]*');
str(start_index) = '0' %converting the first 1 of repetition to zero
idx = find(end_index == start_index+1) % we check for double 1 occurence because we don't need to replace at that location
start_index(idx) = [];
end_index(idx) = []; % remove the double 1 occurence indices
str(start_index+2:end_index) = '0'; % converting to 0's for the other patterns
Hope this helps.
  1 件のコメント
tiwwexx
tiwwexx 2019 年 6 月 14 日
That works perfect! Thanks for the reply.

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

その他の回答 (0 件)

カテゴリ

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

製品


リリース

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by