⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ranking.m

📁 The Source of Genetic Programming developed in Matlab
💻 M
字号:
function r=ranking(v,descending)
%RANKING    Ranks the elements of a vector.
%   RANKING(VECTOR,DESCORDER) returns a vector containing the
%   rank number of each element in VECTOR. If DESCORDER is true,
%   the higher the number the lower the rank number; otherwise,
%   the lower the number the lower the rank number. The same
%   numbers in VECTOR will get the same rank.
%
%   Input arguments:
%      VECTOR - the vector of numbers to rank (1xN matrix)
%      DESCORDER - the flag for descending order ranking (boolean)
%   Output arguments:
%      R - the rank numbers of the elements of VECTOR (1xN matrix)
%
%   Example:
%      VECTOR = [4.43 7.32 3.44 3.44 1.05]
%      DESCORDER = 0
%      R = RANKING(VECTOR,DESCORDER)
%      R = 3     4     2     2     1
%
%   Copyright (C) 2003-2007 Sara Silva (sara@dei.uc.pt)
%   This file is part of the GPLAB Toolbox

sv=unique(v);
% now sv is ordered (ascending)

% check order:
if descending
   sv=flipdim(sv,2);
end

% put v against sorted v (sv):
v=repmat(v,size(sv,2),1);
sv=repmat(sv',1,size(v,2));

% now find the row indices where they match, which indicate the rank:
[r,ans]=find(v==sv);
% (do not remove ans, or find will not return x,y, but only the global index)

% transpose r if it's a column vector (it isn't only if all individuals have the same rank):
if size(r,2)==1
   r=r';
end



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -