我有一个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循环吗?)
瑞克
答案 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中有意义的东西可能会令人困惑。