2017-05-01 2 views
0

Ich habe eine Liste in maxima wie:Maximaler Wert und Index in einer Maxima-Liste finden?

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

Ich brauche den maximun Wert der Liste zu finden und auf welcher Position (en) der Maximalwert liegt.

Das einzige, was mir aufgetreten ist, ist die Liste als Folge neu zu schreiben und die ‚max‘ Befehl

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

gelten Aber es ist nicht effizient, und ich weiß nicht, den Index erhalten von der maximale Wert.

Kann mir jemand helfen?

Antwort

1

lmin gibt den Minimalwert einer Liste zurück. Wenn x eine Liste ist, gibt lmin(x) seinen Minimalwert zurück.

Den Index des Mindestwerts zu erhalten, ist etwas komplizierter. Die relevanteste eingebaute Funktion (es sei denn, ich vergesse etwas) könnte sein, die die Indizes der Elemente zurückgibt, die ein Prädikat erfüllen. Das Prädikat ist eine Funktion einer Variablen, die wahr oder falsch zurückgibt. Um das Beispiel fortzusetzen, gibt sublist_indices(x, lambda([x1], x1 = lmin(x))) einen oder mehrere Indizes zurück, bei denen die Elemente x den minimalen Wert annehmen.

+0

Vielen Dank. Das hat funktioniert! –

Verwandte Themen