Wolfram mathematica 如何在mathematica中应用涉及100个变量的规则

Wolfram mathematica 如何在mathematica中应用涉及100个变量的规则,wolfram-mathematica,Wolfram Mathematica,我有一个包含x1,x2,…,x100的表达式,我还有一个包含100个元素的列表lst,如何将规则应用于该表达式,以实现如下效果: exp/.{x1->lst[[1]],x2->lst[[2]],...,x100->lst[[100]]} 谢谢 您可以使用Thread将规则应用于每对表达式: Thread[{a, b, c} -> {1, 2, 3}] exp/。表[Symbol[“x”ToString[i]]->lst[[i]],{i,1100}] 所以你不需要写X

我有一个包含x1,x2,…,x100的表达式,我还有一个包含100个元素的列表
lst
,如何将规则应用于该表达式,以实现如下效果:

exp/.{x1->lst[[1]],x2->lst[[2]],...,x100->lst[[100]]}

谢谢

您可以使用
Thread
将规则应用于每对表达式:

Thread[{a, b, c} -> {1, 2, 3}]
exp/。表[Symbol[“x”ToString[i]]->lst[[i]],{i,1100}]

所以你不需要写X1,X2。。。X100

使用索引变量而不是生成不同
符号的列表来解决此类任务更简单、更方便。这样:

listOfRules = Array[f@# :> list[[#]] &, {100}];
Short@%

=> {f[1]:>list[[1]],f[2]:>list[[2]],f[3]:>list[[3]],f[4]:>list[[4]],
<<92>>,f[97]:>list[[97]],f[98]:>list[[98]],f[99]:>list[[99]],f[100]:>list[[100]]}
可按常规进行更换:

expr /. listOfRules

对于应用于复杂公式的很长的替换列表,我建议使用
Dispatch
:。@Timo你说得对,Dispatch优化了很多!谢谢你记住这一点。
listOfRules = Dispatch@listOfRules;
expr /. listOfRules