想象一下,我有一个二维的数列,在Mathematica中:
myList = Table[{i,i*j},{i,1,10},{j,1,10}];我想以一种有效的方式检索第五最高值。使用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,或者还有其他方法吗?
发布于 2013-10-30 06:35:30
使用扁平
RankedMax[Flatten@myList,1]发布于 2013-11-04 23:28:24
如果他只是在寻找表中第五大的数据的话,那就太好了。如果,正如我所怀疑的,他正在寻找计算出的第五大项--每对中的第二个元素--我们应该稍微修改以前的解决方案,修改如下:
RankedMax[Flatten@Map[Rest, myList, {2}], 5]https://stackoverflow.com/questions/19675379
复制相似问题