在千里马列表中查找最大值和索引?

时间:2017-05-01 04:54:37

标签: list maxima

我在maxima中有一个列表,如:

x:[1,3,7,98,211,3,2.44,23]

我需要找到列表的最大值以及最大值所在的位置。

我唯一想到的是将列表重写为序列并应用'max'命令

max(first(x),second(x),...,last(x))

但它效率不高,而且我不知道得到最大值的索引。

有人能帮助我吗?

1 个答案:

答案 0 :(得分:2)

lmax会返回列表的最大值。鉴于x是一个列表,那么

 lmax(x)

返回其最小值。

获取最大值的索引稍微复杂一些。最相关的内置函数(除非我忘记了某些事情 - 可能发生)是sublist_indices,它返回满足谓词的元素的索引。谓词是一个变量的函数,它返回true或false。继续这个例子,`

sublist_indices(x, lambda([x1], x1 = lmax(x)))

返回一个或多个索引,x的元素占据最大值。