在Mathematica do循环中,如何让mathematica识别包含' i'?
的变量名称例如,我定义m1 = 1; m2 = 2; m3 = 3;然后执行Do [H [i] = mi,{i,1,3}]。其中一个输出只是H [1] = mi,而不是1.似乎在do循环中,当处理字符串和变量时,mathematica不会用其相应的值替换i。
答案 0 :(得分:2)
您也可以使用Symbol
:
Do[H[i] = Symbol["m" <> ToString[i]], {i, 3}]
然而,这实际上是不好的编码实践。你应该让m
列表开始......
m={1,2,3}
Do[H[i] = m[[i]], {i, 3}]
答案 1 :(得分:1)
您可以混合使用ToExpression
和ToString
:
Do[H[i] = ToExpression["m" <> ToString[i]], {i, 1, 3}]
说明:
"m" <> ToString[i]
生成&#34; m1&#34;,&#34; m2&#34; ...字符串(<>
用于字符串连接)。ToExpression[]
将这些字符串转换为Mathematica表达式