主要内容

topkrows

顶部行按顺序排列

描述

例子

B= topkrows (Xk)返回第一个k数组中的行X按降序排序(对于数字数据)或反向字母顺序排序(对于文本数据)。topkrows根据第一列中的元素进行排序。当第一列包含相同值的元素时,topkrows根据下一列中的元素进行排序,并对后面的相等值重复此行为。

例子

B= topkrows (Xk上校)属性指定的列对结果进行排序上校.使用此语法可连续执行多个列排序。例如,topkrows (X, k, 5)排序的行X按照第五列的元素降序排列。topkrows (X, k, [4 - 6])首先根据第4列中的元素降序排序,然后根据第6列中的元素排序以打破联系。

例子

B= topkrows (___方向)使用任何前面的语法指定排序方向。方向可以“提升”“下”,或包含这些值的单元格数组。

例如,topkrows(A,2,[2 3],{'上升' '下降'})首先根据列2中的元素对行进行升序排序,从而获取前2行。然后,它根据第3列中的元素按降序对第2列中具有相同条目的行进行排序。

例子

B= topkrows (___“ComparisonMethod”,方法)指定如何比较复数。比较法可以“汽车”“真实”的,或“abs”

B= topkrows(X___)还返回一个索引向量它描述所选行的顺序,使B = x (i,:)

例子

B= topkrows (Tk)返回第一个k表或时间表中的行T,按顺序排列。表行按所有变量降序排列,时间表行按时间降序排列。

例子

B= topkrows (Tkvar)属性指定的变量对结果排序var.使用此语法对多个变量进行连续排序。例如,topkrows (T, k,{‘Var1’,‘Var2})的行进行排序T基于元素Var1,然后按元素的数量排序Var2

B= topkrows (Tkvar方向)指定排序的方向。例如,使用“提升”进行排序T按升序排列。

B= topkrows (___“ComparisonMethod”,方法)指定如何比较复数。比较法可以“汽车”“真实”的,或“abs”

B= topkrows(T___)还返回一个索引向量它描述所选行的顺序,使B = t (i,:)

例子

全部折叠

使用不同的排序顺序对矩阵的行进行排序,并查看顶部的行。

创建一个20乘5的矩阵,由1到10之间的随机整数组成。

rng默认的再现率%X = randi(10,20,5);

排序的行X按降序排列并返回前4行。默认情况下,topkrows使用矩阵的第一列进行排序。对于在特定列中具有相等元素的任何行,排序基于紧靠右边的列。

TA = topkrows(X,4)
TA =4×510 10 8 7 6 10 7 8 2 4 10 4 3 5 10 3 7 9 6

当使用三个输入参数调用时,topkrows排序完全基于第三个参数中指定的列。这意味着在指定列中具有相等值的行保持原来的顺序。排序X使用第三列中的值按降序排列并返回前5行。

TB = topkrows(X,5,3)
结核病=5×55 7 10 2 6 2 9 8 6 6 10 10 8 7 6 10 7 8 2 4 10 2 8 3 6

排序X同时使用第三和第四列。在这种情况下,topkrows按列3对行进行排序。然后,对于第3列中值相等的任何行,它按第4列进行排序。

TC = topkrows(X,5,[3 4])
TC =5×55 7 10 2 6 10 10 8 7 6 2 9 8 6 6 2 8 3 6 10 7 8 2 4

使用具有不同排序方向的几列对矩阵进行排序。

创建一个100 × 5的矩阵,由1到10之间的随机整数组成。

rng默认的再现率%X = randi(10,100,5);

排序X使用前三列并返回前10行。使用单元格数组为每一列指定排序方向。

TA = topkrows(X,10,1:3,{“下”“提升”“提升”})
TA =10×510 1 4 6 7 10 1 8 5 1 10 2 3 4 7 10 3 5 10 5 4 7 4 10 5 5 2 7 10 5 5 6 7 10 6 5 5 10 7 7 8 1

对表中的异构数据行进行排序。

属性创建一个表patients.mat数据集,其中包括一组患者的基本健康信息。表中包括患者的年龄、性别、身高及自我评估的健康状况。使SelfAssessedHealthStatus变量为序数分类数组。

负载病人Vals = {“可怜的”“公平”‘好’“优秀”};SelfAssessedHealthStatus = categorical(SelfAssessedHealthStatus,vals,“顺序”,真正的);T = table(年龄,性别,身高,自我评估的健康状况);

当表按降序排序时,找到前10行。结果按第一个变量排序,年龄,按降序排列。其余的列被细分以打破关系:

  • 性别变量被细分以打破与年龄的关系。

  • 高度变量打破了与性别的联系。

  • SelfAssessedHealthStatus变量与身高无关。

TA = topkrows(T,10)
TA =10×4表年龄性别身高自我评估健康状态___________________ ________________________ 50{'男'}72优秀50{'男'}68好49{'男'}70一般49{'男'}68差49{'女'}64好49{'女'}63好48{'男'}71好48{'男'}71好48{'男'}66一般48{'女'}66优秀

排序,找到包含最年轻女性的前10行性别变量和子排序年龄变量。

TB = topkrows(T,10,{“性别”“年龄”},“提升”)
结核病=10×4表年龄性别身高自我评估健康状态___________________ ________________________ 25{'女'}63良好25{'女'}64优秀27{'女'}69一般28{'女'}65良好28{'女'}65良好28{'女'}66良好29{'女'}63优秀29{'女'}68优秀29{'女'}64优秀30{'女'}67优秀

通过改变排序方向,找到最年长的10位女性年龄变量来“下”

TB = topkrows(T,10,{“性别”“年龄”}, {“提升”“下”})
结核病=10×4表年龄性别身高自我评估健康状态___________________ ________________________ 49{'女'}64良49{'女'}63良48{'女'}65优48{'女'}66优48{'女'}64良48{'女'}66优47{'女'}66优46{'女'}68良45{'女'}68优

先按绝对值再按实数部分对复数矩阵进行排序。

创建一个100 × 2的随机复数矩阵。

valRange = [-10 10];X = randi(valRange,100,2) + 1i*randi(valRange,100,2);

找出矩阵的前10行。默认情况下,topkrows用绝对值比较复数。

TA = topkrows(X,10)
TA =10×2复杂我-10.0000 + 9.0000 10.0000 - 2.0000 -8.0000 + 9.0000我2.0000 - 8.0000 9.0000 -6.0000我4.0000 + 7.0000 + 8.0000 + 10.0000我-8.0000 - 7.0000 6.0000 - -10.0000 -1.0000 - 5.0000 6.0000 - -10.0000我0.0000 + 5.0000我-7.0000 + 9.0000 -2.0000 - 5.0000 9.0000 - 7.0000我10.0000 + 7.0000 9.0000 - 7.0000 6.0000 -9.0000 - 7.0000 + 6.0000我9.0000 + 9.0000

通过指定复数的实部来查找矩阵的前10行“ComparisonMethod”名称-值对。

TB = topkrows(X,10,“ComparisonMethod”“真实”的)
结核病=10×2复杂10.0000 + 4.0000i -3.0000 - 7.0000i 10.0000 + 3.0000i 10.0000 + 2.0000i 5.0000 - 7.0000i 10.0000 - 1.0000i -1.0000 - 8.0000i 10.0000 - 1.0000i -6.0000 +10.0000i 10.0000 - 4.0000i -9.0000 + 0.0000i 4.0000 - 3.0000i 9.0000 + 8.0000i 4.0000 + 7.0000i 9.0000 + 5.0000i -10.0000 + 0.0000i 1.0000 + 1.0000i 1.0000 - 9.0000i

输入参数

全部折叠

输入数组,指定为数字、逻辑、字符、字符串、类别、日期时间或持续时间数组。

  • 如果X是一个非有序分类数组吗topkrows根据返回的类别的顺序按降序对元素进行排序类别(X)

  • 如果X包含NaT,或其他缺失的值topkrows将缺失的值放在降序排序的末尾。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑|字符|字符串|分类|datetime|持续时间
复数支持:金宝app是的

输入表,指定为表或时间表。

数据类型:表格|时间表

要返回的行数,指定为非负标量整数。如果k大于其中的行数X,然后topkrows返回所有的行X

要排序的列,指定为正标量整数或正整数的向量。

例子:B = topkrows(X,100,[1 3])在返回前100行之前对第一和第三列进行排序。

排序的变量,指定为此表中的一个选项。

选项 例子 描述
正整数 topkrows (T, k, 3) 整数n指定要按返回值排序的变量的索引T.Properties.VariableNames {n}
正整数向量 topkrows (T, k, 3 [1]) 向量[n1 n2…]指定按返回值排序的几个变量的索引T.Properties.VariableNames{[n1 n2 …]}
逻辑向量 topkrows(T,k,[true false true]) 的值指定要排序的一个或多个变量真正的
变量名 topkrows (T, k, Var3) 中将排序变量指定为中列出的变量名之一T.Properties.VariableNames
单元阵列 topkrows (T, k, {' Var1 ' Var3 '}) 指定从中选择的几个排序变量T.Properties.VariableNames
“RowNames” topkrows (T, k, RowNames) 仅限餐桌.此选项按行名对结果进行排序。

例子:B = topkrows(X,k,[1 3])对第一列和第三列进行排序。

例子:B = topkrows(X,k,'Year')使用一年变量。

排序方向,指定为任意一个“下”“提升”,或指定这些值的某种组合的单元格数组。

如果方向是单元格数组,那么它必须包含什么“下”“提升”指定的每个排序列上校var.如果您没有指定上校var,则单元格数组必须包含“下”“提升”中的每一列X或者变量T

复数的比较方法,指定为以下值之一:

  • “汽车”-(默认)比较实数“真实”的和复数根据“abs”

  • “真实”的-按实部比较数字真正的(一个).实数部分相等的数按虚数部分分类图像放大(A)

  • “abs”—按绝对值进行比较abs ().大小相等的数按相位角分类角(A)

此选项不支持非数字输入数据(金宝appdatetime持续时间字符串,等等)。

输出参数

全部折叠

所请求的行,作为类的数组返回XT

行索引,作为向量返回。描述所选行的顺序,以便B = x (i,:)B = t (i,:)

提示

  • topkrows不做输入数据的完整排序,所以一般比排序而且sortrows当请求的行数很小时。

兼容性的考虑

全部展开

R2017b的行为发生了变化

扩展功能

另请参阅

|||||

在R2016b中引入