2013-05-04 5 views
2

나는 15x100 행렬을 가지고 있으며, 처음 10 행을 오름차순으로 정렬하고 싶습니다. 어떤 MATLAB 코드가 그렇게할까요?matlab에서 특정 행을 정렬하는 방법

편집 : sortrows의 두 번째 인수는 열이있는 정렬 할 순서를 알려줍니다 각 열

+0

'sortrows (x (1:10, :))는 어떻습니까? – wakjah

+0

그건 단지 10 행을 가진 새로운 행렬을 생성하고, 내가 실험 한 것에서 특정 열만 정렬합니다. – William

+0

난 그 정확한 코드 라인을 시도하고 그것은 첫 번째 열에 대해 완벽하게 작동하지만, 나머지 열은 여전히 ​​오름차순으로 정렬되지 않습니다. – William

답변

7
x(1:10, :) = sortrows(x(1:10, :), 1:size(x,2)); 

의 처음 10 개 행을 정렬합니다. 따라서 1:size(x, 2)은 각 열을 순서대로 (오름차순으로) 정렬합니다.

실제로 모든 열을 완벽하게 정렬 (행 ​​1에서 10)하고 행의 무결성을 유지하지 않으려면 (즉, 각 행을 더 이상 찾을 수 없음)

for col = 1:size(B, 2) 
    B(1:10, col) = sort(B(1:10, col)); 
end 
+0

B (1:10, :) = sortrows (B (1:10, :), 1 : size (B, 2))를 사용하여 첫 번째 열만 작업했습니다. 다른 행을 다시 정렬하지만 오름차순으로 정렬하지는 않습니다. – William

+0

그들은 차례로 차례로 정렬됩니다. 먼저 col 1, then 2 등으로 정렬됩니다. 행이 모두 뒤죽박죽이되도록 각 열에 정렬 된 상위 10 개의 행을 원한다고 말하고 있습니까? – Dan

+0

@ 윌리엄 만약 당신이 그때 후자를 내 최신 편집을 참조하십시오 – Dan

관련 문제