我在maxima中有一个列表,如:
x:[1,3,7,98,211,3,2.44,23]
我需要找到列表的最大值以及最大值所在的位置。
我唯一想到的是将列表重写为序列并应用'max'命令
max(first(x),second(x),...,last(x))
但它效率不高,而且我不知道得到最大值的索引。
有人能帮助我吗?
答案 0 :(得分:2)
lmax
会返回列表的最大值。鉴于x
是一个列表,那么
lmax(x)
返回其最小值。
获取最大值的索引稍微复杂一些。最相关的内置函数(除非我忘记了某些事情 - 可能发生)是sublist_indices
,它返回满足谓词的元素的索引。谓词是一个变量的函数,它返回true或false。继续这个例子,`
sublist_indices(x, lambda([x1], x1 = lmax(x)))
返回一个或多个索引,x
的元素占据最大值。