2013-07-12 32 views
5

Với hai bộ Mathematica của dữ liệu nhưElement-khôn ngoan cho hai danh sách

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

làm thế nào tôi có thể tạo ra một bộ đem lại cho tôi những giá trị tối đa của hai danh sách, tức là làm thế nào để có được

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

?

+0

Bạn đang tìm kiếm ví dụ: C# mã? – cinek

+1

Hãy xem trang web này, đặc biệt cho các câu hỏi về Mathematica http://mathematica.stackexchange.com/questions –

Trả lời

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 '/ @' là viết tắt của [Bản đồ] (http://reference.wolfram.com/mathematica/ ref/Map.html) –

3

Một giải pháp khả thi là sử dụng MapThread chức năng: tuy nhiên

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

giải pháp Belisarius là nhanh hơn nhiều.

1

đơn giản, mặc dù không phải là nhanh nhất:

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

Hmm, 3 chức năng gọi * vs * 3 trong câu trả lời của belisarius * vs * 2 trong sakra. Tôi nghĩ rằng cả 3 đều trong cùng một lớp tương đương cho sự đơn giản. –

Các vấn đề liên quan