finding duplicate number and adjacent row value

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

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

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

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 Programming 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!