Wolfram mathematica Mathematica-在树中有选择地收集节点

Wolfram mathematica Mathematica-在树中有选择地收集节点,wolfram-mathematica,Wolfram 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] 输出: {{0.3,0.3},{0.2,0.2},{0.1,0.1}} 关于你问题的第二部分,即选择{{a,b},{c,d},怎么样 b = {{{{}, {0.3

我有一个树(表达式),我只想在树上收集特定类型的节点——那些遵循特定模式的节点。我有一个简化的例子如下:

A = {{{{},{0.3,0.3}},{0.2,0.2}},{0.1,0.1}}; TreeForm[A, PlotRangePadding->0] Cases[A, {x_Real, y_Real}, Infinity] 输出:

{{0.3,0.3},{0.2,0.2},{0.1,0.1}}

关于你问题的第二部分,即选择
{{a,b},{c,d}
,怎么样

b = {{{{}, {0.3, 0.3}}, {0.2, 0.2}}, {{0.1, 0.1}, {0.3, 0.4}}};
TreeForm[b]
Cases[b, {{a_, b_}, {c_, d_}} /; (And @@ NumericQ /@ {a, b, c, d}), Infinity]

(这样它们就不必是
实的
,但任何数字都可以)

这里有一个替代形式acl,我发现它更具可读性

b = {{{{}, {0.3, 0.3}}, {0.2, 0.2}}, {{0.1, 0.1}, {0.3, 0.4}}};

With[{p = _?NumericQ}, Cases[b, {{p, p}, {p, p}}, -1] ]

谢谢你的数字创意。我在另一个地方使用了x|u Real | x|u整数模式,我将替换它。+1。这是一个很好的观点:我在回答中写的代码现在很难在精神上解析。
b = {{{{}, {0.3, 0.3}}, {0.2, 0.2}}, {{0.1, 0.1}, {0.3, 0.4}}};

With[{p = _?NumericQ}, Cases[b, {{p, p}, {p, p}}, -1] ]