Wolfram mathematica 如何让mathematica识别包含';i';在循环中?

Wolfram mathematica 如何让mathematica识别包含';i';在循环中?,wolfram-mathematica,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 您可以混合使用来表达和来字符串: Do[H[i] = ToExpression["m" <> ToString[i]], {i, 1, 3}] Do[H[i]=ToExpressio

在Mathematica do循环中,如何使Mathematica识别包含“I”的变量名


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

您可以混合使用
来表达
来字符串

Do[H[i] = ToExpression["m" <> ToString[i]], {i, 1, 3}]
Do[H[i]=ToExpression[“m”ToString[i]],{i,1,3}]
说明:

  • “m”ToString[i]
    生成“m1”、“m2”。。。字符串(
    用于字符串串联)
  • ToExpression[]
    将这些字符串转换为Mathematica表达式

    • 您也可以使用
      符号

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

      非常感谢你,你的回答完美地解决了我的问题!或者
      Array[(H[#]=m[#]]和,3]
      m={1,2,3}
      Do[H[i] = m[[i]], {i, 3}]