2015-10-19 69 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