finding duplicate number and adjacent row value

1 vue (au cours des 30 derniers jours)
Sobhan
Sobhan le 16 Sep 2012
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

Azzi Abdelmalek
Azzi Abdelmalek le 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 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 Logical dans Help Center 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