Remove duplicate values, but keep the initial

4 Ansichten (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.

Kategorien

Mehr zu Elementary Math finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by