Mathematica中多维列表中的最大数字

时间:2013-10-30 06:32:58

标签: wolfram-mathematica

想象一下,我在Mathematica中有一个2D列表:

myList = Table[{i,i*j},{i,1,10},{j,1,10}];

我希望以有效的方式检索第5个最高值。使用RankedMax会出错。例如,

Max[myList]

给出了100但是:

RankedMax[myList,1]

给出:

 RankedMax::vec :  "Input {{{1, 1}, {1, 2}, {1, 3}, {1, 4}, {1, 5}, {1, 6}, \

{1, 7}, {1, 8}, {1, 9}, {1, 10}}, {{2, 2}, {2, 4}, {2, 6}, {2, 8}, {2, 10}, \

{2, 12}, {2, 14}, {2, 16}, {2, 18}, {2, 20}}, 6, {{9, 9}, {9, 18}, {9, 27}, \

{9, 36}, {9, 45}, {9, 54}, {9, 63}, {9, 72}, {9, 81}, {9, 90}}, {{10, 10}, \

{10, 20}, {10, 30}, {10, 40}, {10, 50}, {10, 60}, {10, 70}, {10, 80}, {10, \

90}, {10, 100}}} is not a vector

如何在我的数据上使用RankedMax,还是有其他方法?

2 个答案:

答案 0 :(得分:2)

使用展平

RankedMax[Flatten@myList,1]

答案 1 :(得分:2)

如果他只是在寻找表中所有数字中的第五大数字,那就没关系。如果,正如我怀疑的那样,他正在寻找第五大计算术语 - 每对中的第二个元素 - 我们应该稍微修改以前的解决方案:

RankedMax[Flatten@Map[Rest, myList, {2}], 5]