2013-07-12 33 views
5

Biorąc pod uwagę dwa zestawy Mathematica danych takich jakElement mądry maksymalna wartość dla dwóch list

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

Jak mogę utworzyć zestaw daje mi maksymalną wartość dwóch list, to znaczy w jaki sposób uzyskać

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

?

+0

Szukasz czyli C# kodu? – cinek

+1

Proszę spojrzeć na tę stronę, specjalnie dla pytań Mathematica http://mathematica.stackexchange.com/questions –

Odpowiedz

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 '/ @' jest skrótem dla [Map] (http://reference.wolfram.com/mathematica/ ref/Map.html) –

3

Innym możliwym rozwiązaniem jest użycie funkcji: MapThread jednak

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

rozwiązanie Belizariusz jest znacznie szybsze.

1

najprostszy, choć nie najszybszy:

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

Hmm, 3 wywołania funkcyjne * vs * 3 w odpowiedzi Belisariusza * kontra * 2 w sakrach. Myślę, że wszystkie 3 są w tej samej klasie równoważności dla prostoty. –