finding duplicate number and adjacent row value

1 view (last 30 days)
Suppose I have a matrix of values
v = [1 4; 1 5; 2 4; 2 4; 2 5; 2 5; 3 4; 3 7]
in column one the numbers are consecutive but with repetition, how can I find only the first numbers and corresponidng number in the other column, put them in a new matrix (v')? The new matrix should be like this from my example:
v'= [1 4; 2 4; 3 4]
I hope I am clear enough
Cheers
Sobhan
  1 Comment
Azzi Abdelmalek
Azzi Abdelmalek on 16 Sep 2012
Edited: Azzi Abdelmalek on 16 Sep 2012
what if v= [1 4; 1 5; 2 4; 2 4; 2 5; 2 5; 3 4; 3 7;1 5;1 6]?

Sign in to comment.

Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 16 Sep 2012
v = [1 4; 1 5; 2 4; 2 4; 2 5; 2 5; 3 4; 3 7]
idx=diff(v(:,1))
v1=[];
if idx(1)==0
v1=[v1;v(1,:)]
end
for k=2:length(idx)
if idx(k)==0 & idx(k-1)~=0
v1=[v1; v(k,:)]
end
end
  1 Comment
Sobhan
Sobhan on 16 Sep 2012
Dear Azzi, your solution worked perfectly! Thanks a lot. Wayne`s method gave an error. Anyhow, thanks a lot to both of you

Sign in to comment.

More Answers (1)

Wayne King
Wayne King on 16 Sep 2012
Edited: Wayne King on 16 Sep 2012
[~,iv] = unique(v(:,1),'stable');
vnew = v(iv,:);

Categories

Find more on Multidimensional Arrays in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!