2012-12-21 6 views
2

가능한 중복 : 나는 429 개 값의 벡터 'A'와 매트릭스 '를 가지고
How can I sort a 2-D array in MATLAB with respect to one column?
Sort a matrix with another matrixMATLAB - 벡터 정렬하는 방법을 기반으로 매트릭스를 정렬

B '는 429x200 값입니다. A와 B의 행은 동일한 색인을 공유합니다. 내 벡터 'A'는 1 : 1 : 429 값을 포함하지만 벡터 전체에서 무작위로 정렬됩니다. 나는 1부터 429까지의 순서로 색인을 만들도록 A를 재정리하고 새로 정렬 된 'A'와 같은 순서로 행 'B'를 정렬하려고합니다.

for-loop없이이 작업을 빠르고 쉽게 할 수 있습니까?

여기 내 요점을 설명하기 위해 예입니다 :

A = 
    5 
    3 
    1 
    2 
    4 


B = 
    3 7 0 4 6 
    1 2 5 0 8 
    4 0 2 0 0 
    3 0 1 0 5 
    2 2 3 4 4 


sortedA = 

1 
2 
3 
4 
5 

sortedB = 

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

당신에게 모두 감사합니다!

답변

2

예 데이터 :

A = [ 5, 3, 1, 2, 4 ]'; 

B = [ 3, 7, 0, 4, 6; 1, 2, 5, 0, 8; 4, 0, 2, 0, 0; 3, 0, 1, 0, 5; 2, 2, 3, 4, 4 ] 

정렬 매트릭스 :

[sortedA,IX] = sort(A); 

sortedB = B(IX,:); 

sortedA = 
1 
2 
3 
4 
5 

sortedB = 
4  0  2  0  0 
3  0  1  0  5 
1  2  5  0  8 
2  2  3  4  4 
3  7  0  4  6