2012-10-12 4 views
2

매트릭스가 있습니다 (n x m). 내가 알고 싶습니다, 각 행에 대해, 처음 두 최대 값을 포함 coloums의 인덱스 :매트릭스의 처음 두 최대 값을 얻으십시오.

2 3 4 2 
2 4 7 1 
1 1 2 4 
5 5 9 6 
1 4 2 1 
9 8 1 2 

는 대답은해야합니다 :

2 3 
2 3 
3 4 
3 4 
2 3 
1 2 

가 어떻게 그것을 얻을 수 있습니다 MATLAB 명령? 나는 for 루프를 사용하지 않기를 바란다. 나는 다음과 같이 시도했다 :

[x,y]=max(matrix') 
y=y'; 

y는 최대 요소에 대한 콜럼 인덱스를 제공한다. 이제는 이러한 요소를 0으로 설정하고 지침을 반복하지만 어떻게 해야할지 잘 모릅니다. 나는 배신하다 :

matrix(:,y)=0; 

그러나 작동하지 않는다. A는 여러분의 행렬 인 경우, 다음 정렬하고 상위 두 개의 인덱스를 선택

답변

6

,

[a ix]=sort(A,2) 
ans= ix(:,end-1:end) 
+0

감사합니다! 그것은 작동! –

관련 문제