使用重复对值进行排序。Matlab

使用重复对值进行排序。Matlab,matlab,rank,Matlab,Rank,我的问题很简单,但我找不到答案 我有一个100000行x30列的矩阵用于模拟,我需要对每列的100k值进行排序。 我正在寻找类似的东西,但我需要的是重复的计数,而不是平均值 假设:data=[-120-20]我需要的是rank=[2 5 3 1 4] 有什么建议吗 多谢各位 Juan看起来您需要排序: 要对矩阵的所有列进行一次排序,可以使用以下代码 data = [ -1 2 0 -2 0; -1 -1 -2 2 2]' ; %' [n m] = size( data ); % number o

我的问题很简单,但我找不到答案

我有一个100000行x30列的矩阵用于模拟,我需要对每列的100k值进行排序。 我正在寻找类似的东西,但我需要的是重复的计数,而不是平均值

假设:data=[-120-20]我需要的是rank=[2 5 3 1 4]

有什么建议吗

多谢各位

Juan

看起来您需要排序:

要对矩阵的所有列进行一次排序,可以使用以下代码

data = [ -1 2 0 -2 0; -1 -1 -2 2 2]' ; %'
[n m] = size( data ); % number of rows and columns
[ignore idx] = sort(data); % sort columns
rank = zeros( size(data) ); % allocate
rank( sub2ind( size(rank), idx, bsxfun(@times, 1:m, ones(n,1) ) ) ) = ...
    repmat( (1:n)', 1, m )

rank =

     2     2
     5     3
     3     1
     1     4
     4     5

为什么-1排在-2?对不起!我的错!应该是2。。。谢谢谢谢你这么快回答@user2431026请参阅我的编辑-扩展解决方案,对多个专栏进行排名Fantastic!你帮了大忙!
data = [ -1 2 0 -2 0; -1 -1 -2 2 2]' ; %'
[n m] = size( data ); % number of rows and columns
[ignore idx] = sort(data); % sort columns
rank = zeros( size(data) ); % allocate
rank( sub2ind( size(rank), idx, bsxfun(@times, 1:m, ones(n,1) ) ) ) = ...
    repmat( (1:n)', 1, m )

rank =

     2     2
     5     3
     3     1
     1     4
     4     5