How to find repeated values in a column vector

4 visualizzazioni (ultimi 30 giorni)
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).

Risposta accettata

Monika Phadnis
Monika Phadnis il 13 Giu 2019
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.

Più risposte (0)

Categorie

Scopri di più su Data Type Conversion in Help Center e File Exchange

Prodotti


Release

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by