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

1 visualizzazione (ultimi 30 giorni)
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

Risposta accettata

Andrei Bobrov
Andrei Bobrov il 28 Ago 2013
Modificato: Andrei Bobrov il 28 Ago 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];

Più risposte (1)

Walter Roberson
Walter Roberson il 28 Ago 2013
hint: look at find() in conjunction with diff(x)

Categorie

Scopri di più su MATLAB in Help Center e File Exchange

Tag

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by