文档

topkrows

按顺序排列的最上面的行

描述

例子

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

例子

B= topkrows (X,K,上校)按指定的列对结果进行排序上校.使用此语法可连续执行多个列排序。例如,托普克罗斯(X,k,5)排序X根据第五列中的元素按降序排列。托普克罗斯(X,k,[4,6])首先按第四列中的元素降序对行进行排序,然后根据第六列中的元素进行排序,以打破关联。

例子

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

例如,topkrows(2 2 3,{“提升”“下降”})获取前2行,方法是首先按第2列中的元素按升序对行进行排序。然后按第3列中的元素按降序对第2列中条目相等的行进行排序。

例子

B= topkrows (___“ComparisonMethod”,方法)指定如何比较复数。比较方法可以是“自动”,“真实”的,或“腹肌”

[B,]=托普克罗斯(X,___)还返回一个索引向量它描述了所选行的顺序B=X(I,:)

例子

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

例子

B= topkrows (T,K,var)按指定的变量对结果进行排序var。使用此语法可以连续使用多个变量进行排序。例如,topkrows(T,k,{'Var1','Var2'})首先对行进行排序T基于Var1,然后按里面的元素排序Var2

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

B= topkrows (___“ComparisonMethod”,方法)指定如何比较复数。比较方法可以是“自动”,“真实”的,或“腹肌”

[B,]=托普克罗斯(T,___)还返回一个索引向量它描述了所选行的顺序B = T(我,:)

例子

全部崩溃

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

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

rng默认的%为了再现性X =兰迪(10年,20年,5);

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

TA = topkrows (X, 4)
TA =4×510 10 8 7 6 10 7 8 2 4 10 4 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 10 2 8 3 6 10 7 8 2 4

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

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

rng默认的%为了再现性X =兰迪(10100 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 10 4 7 2 4 10 5 5 5 6 7 10 6 5 5 7 10 6 6 1 5 10 7 7 7

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

创建一个表病人垫数据集,包括一组患者的基本健康信息。在表中包括患者的年龄、性别、身高和自我评估的健康状况。使SelfAssessedHealthStatus变量为有序分类数组。

负载病人瓦尔斯= {“可怜的”,“公平”,“很好”,“优秀”};SelfAssessedHealthStatus =分类(SelfAssessedHealthStatus,瓦尔斯,“序数”,真正的);T =表(年龄、性别、身高、SelfAssessedHealthStatus);

当表按降序排序时,查找前10行。结果按第一个变量排序,年龄,按降序排列。其余立柱采用下螺纹连接,以断开连接:

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

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

  • 这个SelfAssessedHealthStatus变量与高度成正比。

TA=topkrows(T,10)
TA =10×4表年龄性别身高SelfAssessedHealthStatus  ___ __________ ______ ________________________ {‘男性’}72优秀50{‘男性’}68架好49{‘男性’}70 49{‘男性’}68贫穷49{‘女性’}64好49{‘女性’}63 48{‘男性’}71好48{‘男性’}71 48{‘男性’}66公平48{‘女性’}66好

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

结核病= topkrows (T 10 {“性别”,“年龄”},“提升”)
结核病=10×4表年龄性别身高SelfAssessedHealthStatus  ___ __________ ______ ________________________ 25{‘女性’}63好25{‘女性’}64 69年优秀27日{‘女性’}65年公平28日{‘女性’}65年好28日{‘女性’}好66年{‘女性’}28日29日{‘女性’}63年68年优秀29日{‘女性’}64年优秀29日{‘女性’}{‘女性’}67优秀的好

通过更改列表的排序方向,查找前10名最年长的女性年龄可变到“下”

结核病= topkrows (T 10 {“性别”,“年龄”}, {“提升”,“下”})
结核病=10×4表年龄性别身高SelfAssessedHealthStatus  ___ __________ ______ ________________________ 49{‘女性’}64好49{‘女性’}63 48{‘女性’}65优秀48{‘女性’}66优秀48{‘女性’}64优秀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.0000i 10.0000-2.0000i-8.0000+9.0000i 2.0000-8.0000i 9.0000+8.0000i 4.0000+7.0000i-6.0000+10.0000i-8.0000-7.0000i-6.0000-1.0000-5.0000i 6.0000-10.0000i 0.0000+5.0000i-2.0000-5.0000i 9.0000-7.0000i 10.0000+7.0000i我

通过指定,仅使用复数的实部来找到矩阵的前10行“比较法”名称-值对。

TB=topkrows(X,10,“比较法”,“真实”的)
结核病=10×2复合体我10.0000 + 4.0000 -3.0000 - 7.0000 10.0000 10.0000我4.0000 + 5.0000 + 3.0000 + 2.0000我5.0000 - 7.0000 10.0000 - 1.0000 -1.0000 - 8.0000 10.0000 - 1.0000我-6.0000 + 10.0000 10.0000 - 4.0000我-9.0000 + 0.0000 10.0000 - 5.0000 -8.0000 - 3.0000我4.0000 + 9.0000 + 8.0000 7.0000 -10.0000我9.0000 + 5.0000 + 0.0000我1.0000 - 9.0000 + 1.00009.0000我

输入参数

全部崩溃

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

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

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

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

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

数据类型:桌子|时间表

要返回的行数,指定为非负标量整数。如果K是否大于行数X那么topkrows返回所有的行X

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

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

要排序的变量,指定为该表中的选项之一。

选项 例子 描述
正整数 托普克罗斯(T,k,3) 整数N指定要排序的变量的索引T.Properties.VariableNames{n}
正整数向量 topkrows (T, k, 3 [1]) 向量(n1 n2……)指定多个要排序的变量的索引T.Properties.VariableNames{[n1 n2 …]}
逻辑向量 topkrows (k, T[真假真]) 的值指定要排序的一个或多个变量真正的假的
变量名 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

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

  • “自动”-(默认)根据“真实”的复数根据“腹肌”

  • “真实”的—按实部比较数字真正的(一个).实部相等的数字由虚部次排序imag(A)

  • “腹肌”-按绝对值比较数字abs (). 大小相等的数字按相位角进行细分角度(A)

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

输出参数

全部崩溃

请求的行,作为与XT

行索引,作为向量返回。描述所选行的顺序,以便B=X(I,:)B = T(我,:)

提示

  • topkrows不做完整的输入数据排序,所以它通常比排序sortrows当请求的行数很小时。

兼容性的考虑

全部展开

R2017b中的行为发生了变化

扩展功能

R2016b中引入