0
A = [21 3 14;0 1 5;8 2 4]
矩陣,並且希望有一個新的矩陣
B =[9 4 8;1 2 6;7 3 5]
我發現了一個方法來創建一個矢量
http://blogs.mathworks.com/loren/2007/08/21/reversal-of-a-sort/#7
但是有矩陣的功能嗎?
感謝
A = [21 3 14;0 1 5;8 2 4]
矩陣,並且希望有一個新的矩陣
B =[9 4 8;1 2 6;7 3 5]
我發現了一個方法來創建一個矢量
http://blogs.mathworks.com/loren/2007/08/21/reversal-of-a-sort/#7
但是有矩陣的功能嗎?
感謝
這樣做,這將是一種可能的方式:
與abhineetprasad的解決方案類似,但不需要鍵值結構。
您可以對矢量使用與矩陣幾乎相同的方法。您只需確定A的矢量形狀版本A(:)
的排序索引,並將B初始化爲與A相同的維度。然後,您可以使用線性索引將其填入矩陣B中以填充行列:
% prepare matrix B with the same dimensions as A
B = zeros(size(A));
% determine sort indices of the matrix entries treated as a vector
[~, ind] = sort(A(:));
% use linear indexing by sort indices to fill vector B with ranks
B(ind) = 1 : numel(B);