私はx1、x2、...、x100を含む式を持っています。また、リストを持っていますlst
100要素で、この式にルールを適用する方法次のようなものです:mathematicaに100個の変数を含むルールを適用する方法
exp/.{x1->lst[[1]],x2->lst[[2]],...,x100->lst[[100]]}
ありがとうございます!
私はx1、x2、...、x100を含む式を持っています。また、リストを持っていますlst
100要素で、この式にルールを適用する方法次のようなものです:mathematicaに100個の変数を含むルールを適用する方法
exp/.{x1->lst[[1]],x2->lst[[2]],...,x100->lst[[100]]}
ありがとうございます!
exp /. Table[Symbol["x" <> ToString[i]] -> lst[[i]], {i, 1, 100}]
ですから、X1を記述する必要はありません、X2、... X100
あなたが表現の各ペアにルールを適用するためにThread
を使用することができます。
Thread[{a, b, c} -> {1, 2, 3}]
ことがあります異なる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
大きなリストに価値があります
複雑な数式に適用される非常に長い置換リストについては、「Dispatch」を使用することをおすすめします:http://reference.wolfram.com/mathematica/ref/Dispatch.html。 – Timo
@Timoあなたが正しいです、ディスパッチは、多くの最適化!それを覚えてくれてありがとう。 –