2013-05-04 116 views
2

我有一個15x100矩陣,我只想按升序對前10行進行排序,matlab代碼會做什麼?如何在matlab中對特定行進行排序

編輯:排序的第10行每列

+0

'sortrows(x(1:10,:))''? – wakjah 2013-05-04 22:39:21

+0

這產生了一個只有10行的新矩陣,並且只按特定的列進行排序,這與我試驗過的一樣。 – William 2013-05-04 22:49:45

+0

我剛剛嘗試了一段代碼,它對第一列完美工作,但其餘列仍未按升序排序。 – William 2013-05-04 23:11:23

回答

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

sortrows的第二個參數告訴它的列在其中下令要排序的。因此1:size(x, 2)將依次按照每列進行排序(按升序排列)

如果您確實希望所有列都完美排序(第1到第10行)並且不保留行的完整性(即不能再找到每行)在原來的)然後(雖然這很奇怪):

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

我標記了我的矩陣B並使用了B(1:10,:) = sortrows(B(1:10,:),1:size(B,2)),它只在第一列中起作用。它會重新排列其他行,但不會按升序排列。 – William 2013-05-05 00:37:53

+0

它們按順序依次排序,所以先按col 1,然後按2等等。你是說你想要在每列中排序前10行,這樣行就全部混淆了嗎? – Dan 2013-05-05 10:21:58

+0

@William如果你確實想要那麼後者看到我的最新編輯 – Dan 2013-05-05 10:29:18

相關問題