0

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

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

我想选择 < 3 的元素。

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

我知道 Select[Flatten[p],# < 3&] 会起作用,但我会失去列表结构。

有任何想法吗?(我必须使用 for 循环吗?)

瑞克

4

1 回答 1

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,该列表只是开头和结尾。我会写 head 和 tail,但那些已经在 Mathematica 中具有可能令人困惑的含义。

于 2014-03-03T05:38:26.007 回答