首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将值赋给给定字符串中的名称的符号

问如何将值赋给给定字符串中的名称的符号
EN

Stack Overflow用户
提问于 2016-09-17 17:10:07
回答 1查看 1.4K关注 0票数 3

给定字符串中符号的名称,一个人怎么能不止一次地给它赋值呢?例如,假设我想定义一个符号,它的名称是varname的值,我想给它分配一个值:

代码语言:javascript
复制
varname = "foo"
Symbol[varname]=5

这是不起作用的,因为Mathematica认为你试图给符号赋值,它是受保护的。如果foo未定义,则此操作将有效:

代码语言:javascript
复制
Evaluate[Symbol[varname]]=5

好的。但它不会再起作用了:

代码语言:javascript
复制
Evaluate[Symbol[varname]]=6

当计算左手边的值时,它的计算值为5,而Mathematica抱怨说,您试图将值6赋值给原始对象5。我希望访问赋值左边的符号foo,而不是foo的值。这能办到吗?

谢谢你能提供的任何帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-18 08:11:31

下面是几个方法,用于处理字符串或变量名。

代码语言:javascript
复制
i = Function[{f, g}, Clear[f]; Evaluate@Symbol[f] = g];
i["foo", 5];
foo
i["foo", 6];
foo

5 6

代码语言:javascript
复制
h = Function[{f, g}, f = g, {HoldFirst}];
h[foo, 5];
foo
h[foo, 6];
foo

5 6

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39549566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档