한 열에 대해 MATLAB에서 2D 배열을 어떻게 정렬 할 수 있습니까?
문제
특정 열에 따라 매트릭스를 정렬하고 싶습니다. 이있다 sort
기능이지만 모든 열을 독립적으로 정렬합니다.
예를 들어, 내 행렬 인 경우 data
이다:
1 3
5 7
-1 4
그런 다음 원하는 출력 (첫 번째 열로 정렬)은 다음과 같습니다.
-1 4
1 3
5 7
그러나 출력 sort(data)
이다:
-1 3
1 4
5 7
이 매트릭스를 첫 번째 열로 어떻게 정렬 할 수 있습니까?
해결책
제 생각에는 Sortrows 기능은 당신이 찾고있는 것입니다.
>> sortrows(data,1)
ans =
-1 4
1 3
5 7
다른 팁
대안 sortrows()
, 더 넓은 시나리오에 적용 할 수 있습니다.
주문할 행/열의 정렬 지수를 저장합니다.
[~,idx]=sort(data(:,1));
이전 정렬 된 지수에 따라 모든 행/열을 재정렬하십시오.
data=data(idx,:)
제휴하지 않습니다 StackOverflow