Redian新闻
>
求教一个mathematica的pattern的问题
avatar
求教一个mathematica的pattern的问题# Programming - 葵花宝典
l*i
1
比如下面的一个表达式:
A=P[la]+P[lb]+P[ua]+P[uc]*P[le]
有什么简单的方法把方括号里的指标的第一个字母是l的项都设成y么?我试着用
A/.{P[lx_]->y},但是输出的结果是 3y+y^2,而正确的输出应该是
2y+P[ua]+y*P[uc]
哪位给指点一下?
avatar
c*y
2
我不知道有啥简单的办法,但是下面的可以用
ToExpression[StringReplace[ToString[A],"l"~~_->"y"]]/.p[y]->y

【在 l*********i 的大作中提到】
: 比如下面的一个表达式:
: A=P[la]+P[lb]+P[ua]+P[uc]*P[le]
: 有什么简单的方法把方括号里的指标的第一个字母是l的项都设成y么?我试着用
: A/.{P[lx_]->y},但是输出的结果是 3y+y^2,而正确的输出应该是
: 2y+P[ua]+y*P[uc]
: 哪位给指点一下?

avatar
l*i
3
It works!! Thank u so much!!!

【在 c****y 的大作中提到】
: 我不知道有啥简单的办法,但是下面的可以用
: ToExpression[StringReplace[ToString[A],"l"~~_->"y"]]/.p[y]->y

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。