我有涉及X1,X2,...,X100,我也有一個列表lst
100種元素的計算式,如何將規則應用於這個表達式實現如下所示:如何應用規則涉及數學一百變量
exp/.{x1->lst[[1]],x2->lst[[2]],...,x100->lst[[100]]}
謝謝!
我有涉及X1,X2,...,X100,我也有一個列表lst
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
s。通過這種方式:
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
大的規則列表:
listOfRules = [email protected];
更換可以照常進行:
expr /. listOfRules
對於很長的更換列出了適用於複雜的公式,我建議使用`Dispatch`:http://reference.wolfram.com/mathematica/ref/Dispatch.html。 – Timo 2011-01-20 07:45:22