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

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일
find(a==2)

댓글 수: 2

but I have to search for a(1) to a(end), and that has duplicate ,how to simply this?
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

카테고리

도움말 센터File Exchange에서 MATLAB에 대해 자세히 알아보기

질문:

UTA
2012년 9월 12일

Community Treasure Hunt

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

Start Hunting!

Translated by