2012-08-03 7 views
1

어떻게하면 MATLAB에서 단순 정렬을 수행 할 수 있습니까? 나는 항상 내 데이터를 가져 와서 그것을 정렬하고 다시 MATLAB로 내보낼 때 엑셀 링크를 사용해야한다. 이것은 성가신 일입니다!matlab에서 한 열을 정렬하고 두 번째 열에서 해당 값을 유지하십시오.

하나의 행렬 < 10x10>을 가지고 있고 두 번째 열에 해당 값을 유지하면서 내림차순으로 첫 번째 열을 정렬하려고합니다. Matlab은 각 열을 개별적으로 정렬하는 것처럼 보입니다.

Example: 
matrix a 
5 4 
8 9 
0 6 
7 3 

matrix b (output) 
0 6 
5 4 
7 3 
8 9 

답변

8

sortrows @chaohuang의 답변은 아마도 당신이 찾고있는 것일 것입니다. 그러나 모든 열을 기준으로 정렬됩니다. 첫 번째 열을 기준으로 정렬 만하려면 다음을 수행하십시오.

% sort only the first column, return indices of the sort 
[~,sorted_inds] = sort(a(:,1)); 

% reorder the rows based on the sorted indices 
b = a(sorted_inds,:); 
+5

이것은 'a = sortrows (a, 1)'와 (과) 다르지 않습니다. –

관련 문제