matlab有沒有返回一列數的大小排名的函式?

時間 2021-06-01 09:57:10

1樓:靜待花開

tiedrank()函式。

但如果其中有相同數,則這幾個數的秩都一樣。且是秩和的平均。如這個數在其中排第3,4,5。那麼返回的秩是(3+4+5)=3。

再例如:

tiedrank([10 20 30 40 20])ans = 1.0000 2.5000 4.0000 5.0000 2.5000

如果沒有相同數,則

tiedrank([10 60 70 30 20])ans = 1 4 5 3 2

2樓:原來

借鑑樓上 @runze Zheng 還有 @梁亦聰 的思路,總結如下:

一列資料,比如a = [7 5 9 3 10]; 想要返回每個元素在本組資料中的排序值(秩,結果為[3 2 4 1 5]),暫時沒有現成的函式可以一步到位實現。比如R語言中,rank函式可以一步實現此結果,探索了一下,MATLAB中可以用如下方式迂迴實現:

一步實現方法: [~, ~, idx] = unique(a, 'sorted'); 但這種方法無法實現逆序。

如果想實現逆序必須通過兩步才能實現:

% 方法1[~

,idx]=

sort(a

,'ascend');[

~,idx]

=sort

(idx

,'ascend'

);%其中`ascend`可省略

% 方法2[~

,idx]=

sort(a

,'ascend');[

~,~,

idx]

=intersect(1

:length

(idx

),idx

);% 方法3[~

,idx]=

sort(a

,'ascend'

);idx

(idx)=

1:length

(idx

);@2018.12.21修改

如果確定向量沒有並列秩的情況,`tiedrank`函式也可以實現這個功能。

3樓:

%對於序列X

[~, Xidx] = sort(X);

[~,Xidx2] = sort(Xidx);

% Xidx2就是所求的序列

以下是解釋

%例如X = [7, 5, 9, 3, 10][XSorted, Xidx] = sort(X);

% 那麼可得XSorted為排序後的X, Xidx為XSorted中的值在原序列X中的位置,即:

% XSorted = [3, 5, 7, 9, 10]% Xidx4, 2, 1, 3, 5]

% 不難發現,1在Xidx中位置排第3——代表7在X中大小排第3% 2在Xidx中位置排第2——5在X中大小排第2 ……% 3在Xidx中位置排第4——9在X中大小排第4% 也就是說:只要求出自然數序列[1, 2, 3, 4, 5]在Xidx中的位置,就可以知道[7, 5, 9, 3, 10]在X中大小的排序。那麼如何查呢?

[XidxSorted,Xidx2] = sort(Xidx);

% 易知XidxSorted就是排序後的自然數序列[1, 2, 3, 4,5],而Xidx2就是[1, 2, 3, 4, 5]在Xidx的位置

所以Xidx2就是所求的答案

4樓:梁亦聰

[~,A] = sort(X); %X是列向量

B = zeros(size(A));

B(A) = (1:length(A))'; %B(i)是X(i)在X中從小到大的排名

5樓:visss

你可以先對一列數排個序,然後

a=rand(1,10);%隨機生成乙個數列b=sort(a);

for i=1:length(b)

for j=1:length(aif a[j]==b[ia[j]=iend

endend

如何生成一列B中有而A中沒有的IP段?

火鍋大魔王 這時候就該安利一波python import csv from faker import Factory 生成假資料,並寫入csv file.引用faker生成ipv4的ip 會生成名為 ip test.csv的檔案,預設1000條資料 def generate fake ip numb...

如何用stata將單元格的一列拆成多列 如下圖所示,求大神解答 ?

何冬州楊巔楊豔華典生 在stata中,我想有必要找到 能找到簡潔一些的方案來實現。在excel中可以在C1中輸入公式 index A A,2 row 2 column A1 然後選中C1 D1及向下的單元格,按ctrl R向右填充,按F2加ctrl 回車向下填充。注 不再建議在excel2003中使...

哪一列國際列車經過的國家最多?

時光之末 古早時期的東方快車,即巴黎至伊斯坦堡 金鑼落淚 的豪華旅遊列車,似乎經過不少國家,但不一定最多。參照某卡車遊戲 東方快車 成就,依次停靠如下城市 巴黎 斯特拉斯堡 髪 慕尼黑 獨 維也納 奧 布達佩斯 匈 布加勒斯特 羅,金鑼再落淚 君堡 土,金鑼三落淚 當中可能會路過斯洛伐克,以及肯定路...