Filter löschen
Filter löschen

Remove duplicate values, but keep the initial

1 Ansicht (letzte 30 Tage)
James Boyle
James Boyle am 28 Feb. 2017
Kommentiert: James Boyle am 1 Mär. 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

Akzeptierte Antwort

Stephen23
Stephen23 am 28 Feb. 2017
Bearbeitet: Stephen23 am 28 Feb. 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

Weitere Antworten (1)

Jan
Jan am 28 Feb. 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.

Community Treasure Hunt

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

Start Hunting!

Translated by