我有一棵樹(表達式),我只想收集某些類型的節點 - 那些節點遵循某種模式。下面我有一個簡單的例子:Mathematica - 選擇性地收集樹中的節點
A = {{{{},{0.3,0.3}},{0.2,0.2}},{0.1,0.1}}; TreeForm[A, PlotRangePadding->0] Cases[A, {x_Real, y_Real}, Infinity]
輸出:
這是一個好辦法做到這一點?
如果不是{X_,Y_},如果我想尋找{{x1_,y1_},{x2_,Y_2}},我怎麼能排除這樣的表達式{X_,Y_},這也匹配嗎?
問候
EDIT(14/07/2011)
我已經發現,使用比其它List
的頭部會在找到這樣的子表達式無衝突極大地幫助。
例如,重整以上:
A = {{{{}, pt[0.3, 0.3]}, pt[0.2, 0.2]}, pt[0.1, 0.1]};
List @@@ Cases[A, _pt, Infinity]
輸出:
{{0.3,0.3},{0.2,0.2},{0.1,0.1}}
感謝NumericQ的想法。我在另一個地方使用了x_Real | x_Integer模式,我將替換它。 –