給定一個字符串中符號的名稱,如何給一個值賦值多次?例如,假設我要定義一個符號,它的名字是varname
的價值,我想給它分配一個值:如何給一個給定名稱的符號賦值一個字符串
varname = "foo"
Symbol[varname]=5
這並不工作,因爲數學會認爲你只是試圖將值分配給符號,這是受保護的。這將工作如果foo
未定義:
Evaluate[Symbol[varname]]=5
好的。但它不會工作第二次:
Evaluate[Symbol[varname]]=6
當左側評估評估爲5和數學抱怨說,您要值6分配給原始對象5.我想訪問代碼左側的符號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