$\开始组$

我有一个长列表,列表中的一个元素是:

U[1,3]U[1,4]U[1,5]U[2,2]U[3,1]

列表中的所有条目都具有相同的U[i,j]乘积结构。在当前实例中,这是5个项的乘积,但可以是n个项的积。

有没有办法从“单项式”U[1,3]U[1,4]U[1,5]U[2,2]U[3,1]中提取单项式的每个因子的第一个条目(1,1,1,2,3)和第二个条目(3,4,5,2,1)?

$\端组$

3个答案

重置为默认值
4
$\开始组$

天哪。。。我工作太努力了。这就行了。

vars=变量[U[1,3]U[1,4]U[1,5]U[2,2]U[3,1]];第一索引=表[vars[[q]][[1],{q,1,长度[vars]}];secondindex=表[vars[[q]][[2],{q,1,长度[vars]}]
$\端组$
2
  • 9
    $\开始组$ firstindex=vars[[All,1]]更简单。 $\端组$ 评论 5月22日14:55
  • $\开始组$ @SjoerdSmit是的,甚至更简单。谢谢。 $\端组$ 评论 5月23日1:08
4
$\开始组$

对于

expr=U[1,3]U[1,4]U[1,5]U[2,2]U[3,1];

你能做到的

{firstindex,secondindex}=转置[List@@List@@expr]

{firstindex,secondindex}=expr/。{Times->List,U->List}//转置
$\端组$
$\开始组$

鉴于,

表达式=U[1,3]U[1,4]U[1,5]U[2,2]U[3,1]

你可以用案例:

案例[表达,U[a_,b_]:>{a,b}](* {{1, 3}, {1, 4}, {1, 5}, {2, 2}, {3, 1}} *)

案例[expression,mono_U:>List@@mono](*{{1,3},{1,4},{1,5},{2,2},{3,1}}*)

这给了你两个想法同时,但它应该是显而易见的,如果这是你真正想要的,如何适应只有一个或另一个。

$\端组$
1

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.