How to find repeated values in a column vector
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
tiwwexx
el 12 de Jun. de 2019
Comentada: tiwwexx
el 14 de Jun. de 2019
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).
0 comentarios
Respuesta aceptada
Monika Phadnis
el 13 de Jun. de 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.
Más respuestas (0)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!