2013-07-12 11 views
5

Gegeben zwei Mathematica Sätze von Daten wieElement wiese Maximalwert für zwei Listen

data1 = {0, 1, 3, 4, 8, 9, 15, 6, 5, 2, 0}; 
data2 = {0, 1, 2, 5, 8, 7, 16, 5, 5, 2, 1}; 

wie kann ich einen Satz gibt mir den Maximalwert der beiden Listen zu erstellen, das heißt, wie erhalten

data3 = {0, 1, 3, 5, 8, 9, 16, 6, 5, 2, 1}; 

?

+0

Sie heißt C# -Code suchen? – cinek

+1

Bitte werfen Sie einen Blick auf diese Seite, speziell für Mathematica Fragen http://mathematica.stackexchange.com/questions –

Antwort

4
data1 = {0, 1, 3, 4, 8, 9, 15, 6, 5, 2, 0}; 
data2 = {0, 1, 2, 5, 8, 7, 16, 5, 5, 2, 1}; 
Max /@ Transpose[{data1, data2}] 
(* {0, 1, 3, 5, 8, 9, 16, 6, 5, 2, 1} *) 
+0

BTW '/ @' ist eine Abkürzung für [Karte] (http://reference.wolfram.com/mathematica/ ref/Map.html) –

3

Eine andere mögliche Lösung ist es, die MapThread Funktion zu verwenden:

data3 = MapThread[Max, {data1, data2}] 

belisarius Lösung ist jedoch viel schneller.

1

Simplest, wenn auch nicht der schnellste:

Inner[Max,data1,data2,List] 
+1

Hmm, 3 Funktionsanrufe * vs * 3 in Belisarius 'Antwort * vs * 2 in Sakra's. Ich denke, dass alle 3 der Einfachheit halber in der gleichen Äquivalenzklasse sind. –