2015-10-19 100 views
0

Mathematica問題在這裏。Mathematica:根據條件從列表中選擇元素

我期待提取從列表中符合特定條件的元素:即,第一和第二元素之和大於或等於70這是我已經試過:

points = Table[{racing, sport, 8*racing + 12*sport}, {racing, 0, 40}, {sport, 0, 60}] 
selected = Select[points, points[[All, All, 1]] + points[[All, All, 2]] >= 70 &] 

我收到一個空列表。我究竟做錯了什麼?

+0

涉及到幾個不同的誤解。首先,只有在與#一起使用時纔有意義。其次,你的三個列表的列表有兩個迭代變量,所以不只是我認爲你期望的r和s的各種值的{r,s,8r + 12s}的長列表。使用較小的數字並計算您的圖層{}。接下來,Point [[All,All,1]]可能沒有按照您的想法進行。再次嘗試使用較小的數字並查看。在這一點上,我主要猜測你真正想要什麼。試試這個選擇[Flatten [points,1],#[[1]] +#[[2]]> = 70&],看看你是否真的想要這樣。 – Bill

回答

2

這是否做你想達到的目標?

points = Flatten[Table[{racing, sport, 8*racing + 12*sport}, 
    {racing, 0, 40}, {sport, 0, 60}], 1]; 
selected = Select[points, #[[1]] + #[[2]] >= 70 &] 
+0

是的!非常感謝。問題解決了。 – ChunkyRice