Help with removing duplicate sub-elements....

1 view (last 30 days)
Hi, I have a vector a1 and want to get an output a2. Basically, i should identify the starting index of numbers, keep the first value and replace the repeating elements as NaN. I have no idea how to start since i am new to Matlab. Can someone please help?
a1=[-2 -2 -2 -2 NaN NaN NaN -3 -3 -3 -3 NaN NaN -2 -2 -2 NaN -3 -3 NaN NaN 1 1 1 1 NaN NaN 4 4 4 NaN NaN 3 3 3 NaN];
a2=[-2 NaN NaN NaN NaN NaN NaN -3 NaN NaN NaN NaN NaN -2 NaN NaN NaN -3 NaN NaN NaN 1 NaN NaN NaN 4 NaN NaN NaN NaN 3 NaN NaN NaN];

Accepted Answer

Stephen23
Stephen23 on 6 Feb 2016
Edited: Stephen23 on 6 Feb 2016
Use isnan and diff to create some indices, then replace those values:
>> A = [-2 -2 -2 -2 NaN NaN NaN -3 -3 -3 -3 NaN NaN -2 -2 -2 NaN -3 -3 NaN NaN 1 1 1 1 NaN NaN 4 4 4 NaN NaN 3 3 3 NaN]
A =
-2 -2 -2 -2 NaN NaN NaN -3 -3 -3 -3 NaN NaN -2 -2 -2 NaN -3 -3 NaN NaN 1 1 1 1 NaN NaN 4 4 4 NaN NaN 3 3 3 NaN
>> B = A;
>> B(-1<diff(isnan([NaN,A]))) = NaN
B =
-2 NaN NaN NaN NaN NaN NaN -3 NaN NaN NaN NaN NaN -2 NaN NaN NaN -3 NaN NaN NaN 1 NaN NaN NaN NaN NaN 4 NaN NaN NaN NaN 3 NaN NaN NaN
  3 Comments
Stephen23
Stephen23 on 6 Feb 2016
Edited: Stephen23 on 6 Feb 2016
@Sowmya MR: My code only depends on the NaN's, not the other values. Try it.
Sowmya MR
Sowmya MR on 6 Feb 2016
Awesome. Thank you. Works like a gem

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!