To find the position of the elements which are same in vector

조회 수: 7 (최근 30일)
UTA
UTA 2012년 9월 12일
I have a vector like this: a = [ 2 3 4 2 5 4 3 3]; and I want to find all the index of the elements which has the same value. output like this: # 2, [1 4] # 3, [2 7 8] # 4, [3 6] # 5, [5]

채택된 답변

Matt Fig
Matt Fig 2012년 9월 12일
  댓글 수: 2
UTA
UTA 2012년 9월 12일
but I have to search for a(1) to a(end), and that has duplicate ,how to simply this?
Matt Fig
Matt Fig 2012년 9월 12일
편집: Matt Fig 2012년 9월 12일
Oh, well that's another thing.
a = [ 2 3 4 2 5 4 3 3];
[J,J] = histc(a,unique(a));
T = accumarray(J.',(1:length(J)).',[], @(x) {x});
Now T has the indices you seek.

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

per isakson
per isakson 2012년 9월 12일
편집: per isakson 2012년 9월 12일
Try
num = [ 2 3 4 2 5 4 3 3 ];
unq = unique( num );
ii = arrayfun( @(x) find( num==x ), unq, 'uni', false ) ;
>> unq
unq =
2 3 4 5
>> ii{:}
ans =
1 4
ans =
2 7 8
ans =
3 6
ans =
5
or use a for-loop

Javier
Javier 2013년 8월 28일
편집: Javier 2013년 8월 28일
ind=unique(a)
for i = 1 : length(ind);
[z] =find(a==ind(i))
limit(i,:)=[z(1) z(end)]
end
out = [ind limit]
regards

카테고리

Help CenterFile Exchange에서 MATLAB에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by