2014-03-03 97 views
0

我有一個2D列表 - 128行128個元素(這個數據是爲ContourPlot設置的)。我想快速選擇小於某個epsilon的組中的項目。Mathematica 2d list select

例如,使用3×3的列表:P = {{1,2,3},{4,5,1},{7,8,2}}

我想選擇出是,比如說元素,< 3.

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

我知道選擇[拼合[p],#3 < &]將工作,但我會失去列表結構。

任何想法? (我必須用一個for循環?)

裏克

+0

'請選擇[#,#<3&]&/ @ p'? (關於嵌套'函數'的道歉,它可以工作,但它是相當不可讀的) – Szabolcs

回答

1

mThank您提供特定具體的例子。

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}} 

或英文,讓q等於p您多次更換開始,有一個(可能爲空)每一個列表,任何大於2元和(可能爲空)與這僅僅是列表結束後開始和結束。我會寫頭和尾巴,但這些在Mathematica中已經有含義,可能會令人困惑。