2011-01-20 4 views

答えて

6
exp /. Table[Symbol["x" <> ToString[i]] -> lst[[i]], {i, 1, 100}] 

ですから、X1を記述する必要はありません、X2、... X100

+2

複雑な数式に適用される非常に長い置換リストについては、「Dispatch」を使用することをおすすめします:http://reference.wolfram.com/mathematica/ref/Dispatch.html。 – Timo

+0

@Timoあなたが正しいです、ディスパッチは、多くの最適化!それを覚えてくれてありがとう。 –

3

あなたが表現の各ペアにルールを適用するためにThreadを使用することができます。

Thread[{a, b, c} -> {1, 2, 3}] 
2

ことがあります異なるSymbolのリストを生成する代わりに、索引付き変数を使用してそのようなタスクを解決するのがはるかに簡単で便利です。このように:

listOfRules = [email protected]; 

交換は通常通り行うことができます:

expr /. listOfRules 

listOfRules = Array[[email protected]# :> list[[#]] &, {100}]; 
[email protected]% 

=> {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]]} 

あなたは、このような交換を何度も行うことを計画している場合、それはルールのDispatch大きなリストに価値があります