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 commentaire

Azzi Abdelmalek
Azzi Abdelmalek le 16 Sep 2012
Modifié(e) : Azzi Abdelmalek le 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]?

Connectez-vous pour commenter.

 Réponse acceptée

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 commentaire

Sobhan
Sobhan le 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

Connectez-vous pour commenter.

Plus de réponses (1)

Wayne King
Wayne King le 16 Sep 2012
Modifié(e) : Wayne King le 16 Sep 2012
[~,iv] = unique(v(:,1),'stable');
vnew = v(iv,:);

Catégories

En savoir plus sur Programming dans Centre d'aide et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by