如何让mathematica识别包含' i'的变量名称?在做循环?

时间:2017-12-10 17:47:11

标签: wolfram-mathematica

在Mathematica do循环中,如何让mathematica识别包含' i'?

的变量名称

例如,我定义m1 = 1; m2 = 2; m3 = 3;然后执行Do [H [i] = mi,{i,1,3}]。其中一个输出只是H [1] = mi,而不是1.似乎在do循环中,当处理字符串和变量时,mathematica不会用其相应的值替换i。

2 个答案:

答案 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)

您可以混合使用ToExpressionToString

Do[H[i] = ToExpression["m" <> ToString[i]], {i, 1, 3}]

说明:

  • "m" <> ToString[i]生成&#34; m1&#34;,&#34; m2&#34; ...字符串(<>用于字符串连接)。
  • ToExpression[]将这些字符串转换为Mathematica表达式