主要内容

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(2 2 3,{“提升”“下降”})首先根据第2列中的元素对行按升序排序,获取最上面的2行。然后,它根据列3中的元素按降序对列2中条目相等的行进行排序。

例子

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

B) = topkrows (X___也返回一个索引向量描述所选行顺序的B = X(我,:)

例子

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(我,:)

例子

全部折叠

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

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

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行。

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

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

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

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

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

rng默认的%的再现性X =兰迪(10100 5);

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

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

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

创建一个表patients.mat数据集,其中包括一组患者的基本健康信息。表中包括患者的年龄、性别、身高和自我评估的健康状况。使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 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”名称-值对。

结核病= topkrows (X 10“ComparisonMethod”“真实”的
结核病=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包含NaT,或其他缺失的值,则topkrows将缺失的值放在降序排序的末尾。

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

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

数据类型:表格|时间表

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

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

例子:B = topkrows(X,100,[1])对第一列和第三列进行排序,然后返回前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])对第一列和第三列进行排序。

例子:B = topkrows (X, k,‘年’)类使用一年变量。

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

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

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

  • “汽车”- (default)根据“真实”的复数根据“abs”

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

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

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

输出参数

全部折叠

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

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

提示

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

兼容性的考虑

全部展开

R2017b中行为改变

扩展功能

另请参阅

|||||

介绍了R2016b