Remove duplicate values, but keep the initial

1 visualización (últimos 30 días)
James Boyle
James Boyle el 28 de Feb. de 2017
Comentada: James Boyle el 1 de Mzo. de 2017
For example, i have
x = [0 0 0 1 1 0 0 0 1 0 1 0]
I want the index of the first zero or one, but not the duplicates.
So the vector should become:
0 1 0 1 0 1 0
Where the indices would be '1 4 6 9 10 11 12'
Thanks

Respuesta aceptada

Stephen23
Stephen23 el 28 de Feb. de 2017
Editada: Stephen23 el 28 de Feb. de 2017
>> x = [0,0,0,1,1,0,0,0,1,0,1,0];
>> idx = [1,1+find(diff(x)~=0)]
idx =
1 4 6 9 10 11 12
>> vec = x(idx)
vec =
0 1 0 1 0 1 0

Más respuestas (1)

Jan
Jan el 28 de Feb. de 2017
x = [0 0 0 1 1 0 0 0 1 0 1 0]
[B, N, Index] = RunLength(x)
Then B contains the unique values and Index the indices.

Categorías

Más información sobre Elementary Math en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by