Mathematica 2d列表选择

时间:2014-03-03 04:35:35

标签: select wolfram-mathematica list-manipulation

我有一个2D列表 - 128行128个元素(此数据是为ContourPlot设置的)。我想快速选择小于某些epsilon的组中的项目。

例如,使用3x3列表:p = {{1,2,3},{4,5,1},{7,8,2}}

我想选择比如说< 3。

{{1,2},{1},{2}}

我知道选择[Flatten [p],#< 3&]会工作,但我将失去列表结构。

有什么想法吗? (我必须使用for循环吗?)

瑞克

1 个答案:

答案 0 :(得分:1)

m感谢您提供具体的具体示例。

In[1]:= p = {{1, 2, 3}, {4, 5, 1}, {7, 8, 2}};
In[2]:= q = p //. {h___, m_ /; m > 2, t___} -> {h, t}

Out[2]= {{1, 2}, {1}, {2}}

或者在英语中,在你重复替换每个具有(可能为空)开头且任何大于2的元素和一个(可能为空)结尾的列表之后,使q等于p,其中列表只是一个开头而且结束。我会写出头尾,但那些已经在Mathematica中有意义的东西可能会令人困惑。