文字列内のシンボルの名前を与えられたら、どのようにして値を複数回割り当てることができますか?例えば、私はその名前varname
の値であるシンボルを定義したいと、私はそれに値を代入したい:文字列内に名前が与えられたシンボルに値を割り当てる方法
varname = "foo"
Symbol[varname]=5
Mathematicaはあなたがシンボルに値を代入しようとしていると考えているため動作しません、保護されています。これは、foo
が未定義の場合に機能します:
Evaluate[Symbol[varname]]=5
しかし、それは二度目に動作しません。
Evaluate[Symbol[varname]]=6
左側が評価されると、それは5に評価し、Mathematicaはあなたが私がアクセスしたい生対象5に値6を代入しようとしていると文句を言い代入の左側にあるfoo
のシンボルではなく、foo
の値です。これはできますか?
お手数ですがお寄せいただきありがとうございます。
'ToExpression'を参照してください。 – Alan
「アラン」 - ありがとう。私は投稿する前に 'ToExpression'を見ましたが、それは値に割り当てようとしているところまで評価し続けました。オプション引数として 'Hold'を使って' ToExpression'を使って答えを見つけました。また、これは役に立ちました[(1)](http://mathematica.stackexchange.com/questions/2926/mapthread-gives-different-results-from-toexpression-when-trying-to-assign-variab)。私は後で詳しく説明します。 – nlmath
'varname =" foo "; ToExpression [varname <> "= 5"]; foo – Alan