たとえば、マトリックスがあります
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);
これを行う可能な方法は次のとおりです。