2015-08-28 270 views
1

說,如果我這樣做了一些矩陣A反向排序矩陣列

[sorted,inds] = sort(A,1,'descend') 

我怎麼做這個矩陣的逆排序?

我需要的是這樣的: http://blogs.mathworks.com/loren/2007/08/21/reversal-of-a-sort/#7

任何想法?

謝謝

+0

說'A = [8 4 6 8; 3 2 5 6; 9 3 4 5]'。輸出應該是什麼? –

+0

相同的矩陣。請參閱提供的鏈接 - 有一個簡單的1D案例 –

+0

相同的矩陣?那麼什麼都不做?請更加明確。你想要什麼輸出? –

回答

2
A = [8 4 6 8;3 2 5 6;9 3 4 5]; 
[sorted,inds] = sort(A,1,'descend') 

B = NaN(size(A)); 
B(bsxfun(@plus, inds, 0:size(A,1):numel(A)-1)) = sorted; 

B等於A

訣竅是inds應該被解釋爲列索引。您需要轉換爲線性索引,這很容易通過bsxfun完成。

+0

謝謝!那我需要 –

+1

@sof_dff很高興它的工作。我花了一些時間來了解你想要的東西! –