主要内容

topkrows

排序订单的顶部行

描述

示例

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

示例

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

示例

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

例如,topkrows(2 2 3,{“提升”“下降”})通过第2列中的元素,通过第一个排序排序排序排序等行。然后,在第3列中的元素中,它按升序排序排序排序排序排序排序列2中的第2列中的行。

示例

B.= topkrows (___“ComparisonMethod”,方法指定如何比较复杂的数字。比较方法可以是'auto'“真实”的,或'ABS'

[B.] = topkrows(X.___还返回索引矢量它描述了所选行的顺序b = x(我,:)

示例

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”,方法指定如何比较复杂的数字。比较方法可以是'auto'“真实”的,或'ABS'

[B.] = topkrows(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完全基于第三个参数中指定的列的排序。这意味着指定列中具有相等值的行仍然存在原始顺序。sortX.使用第三列中的值并返回前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

sortX.使用第三列和第四列。在这种情况下,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);

sortX.使用前三列并返回前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.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 -10.0000i -1.0000  -  5.0000i 6.0000 -10.0000i 0.0000+ 5.0000i -7.0000 + 9.0000i -2.0000  -  5.0000i 9.0000  -  7.0000i 10.0000 + 7.0000i 9.0000  -  7.0000i 6.0000 + 6.0000i -9.0000  -  7.0000i 9.0000 + 9.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|持续时间
复数支持:万博1manbetx是的

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

数据类型:表格|时间表

要返回的行数,指定为非负标量整数。如果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 (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,'年')类使用一年变量。

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

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

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

  • 'auto'-(默认)根据“真实”的复数根据'ABS'

  • “真实”的—按实部比较数字真正的(一个).具有相同实际部分的数字由虚部偏离imag(a)

  • 'ABS'- 通过绝对值进行比较数字abs ().相同幅度的数字由相位角调角度(a)

此选项不支持非数字输入数据(万博1manbetxdatetime持续时间字符串等等)。

输出参数

崩溃

请求的行,作为同一类的数组返回X.T.

行指数,作为向量返回。描述所选行的顺序,使其如此b = x(我,:)B = T(我,:)

提示

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

兼容性的考虑

全部展开

R2017B的行为更改

扩展功能

介绍在R2016B.