How can i find the position of same elements in matlab......

1 vue (au cours des 30 derniers jours)
Javier
Javier le 28 Août 2013
For Example :
x=[1 1 1 2 2 3 3 5 5 5 7 7 7]
result =
1 1 3
2 4 5
3 6 7
5 8 10
7 11 13
Regards.......
I try something like this, ('works')but is really slow
ind=unique(x)
for i = 1 : length(ind);
[z] =find(x==ind(i))
limit(i,:)=[z(1) z(end)]
end

Réponse acceptée

Andrei Bobrov
Andrei Bobrov le 28 Août 2013
Modifié(e) : Andrei Bobrov le 28 Août 2013
[a,b1] = unique(x,'first');
[a,b2] = unique(x,'last');
result = [a(:),b1,b2];
or
ii = [find([true;diff(x(:))~=0]);numel(x)+1];
result=[x(ii(1:end-1))',ii(1:end-1),ii(2:end)-1];
  1 commentaire
Javier
Javier le 30 Août 2013
ULTRA SUPER FAST, THANKS ANDREI BOBROV...............

Connectez-vous pour commenter.

Plus de réponses (1)

Walter Roberson
Walter Roberson le 28 Août 2013
hint: look at find() in conjunction with diff(x)
  1 commentaire
Javier
Javier le 28 Août 2013
Modifié(e) : Javier le 30 Août 2013
Thanks Walter,

Connectez-vous pour commenter.

Catégories

En savoir plus sur MATLAB dans Help Center et File Exchange

Tags

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by