gpt4 book ai didi

wolfram-mathematica - 如何给字符串中给定名称的符号赋值

转载 作者:行者123 更新时间:2023-12-05 06:41:47 30 4
gpt4 key购买 nike

给定字符串中符号的名称,如何多次为其赋值?例如,假设我想定义一个名称为 varname 的值的符号,并且我想为它分配一个值:

varname = "foo"
Symbol[varname]=5

这是行不通的,因为 Mathematica 认为您正在尝试为 protected Symbol 赋值。如果 foo 未定义,这将起作用:

Evaluate[Symbol[varname]]=5

好的。但它不会第二次工作:

Evaluate[Symbol[varname]]=6

当计算左侧时,它的计算结果为 5,而 Mathematica 提示您正试图将值 6 分配给原始对象 5。我想访问左侧的符号 foo赋值的一侧,而不是 foo 的值。这能做到吗?

在此先感谢您提供的任何帮助。

最佳答案

这里有几个方法,可以处理字符串或变量名。

i = Function[{f, g}, Clear[f]; Evaluate@Symbol[f] = g];
i["foo", 5];
foo
i["foo", 6];
foo
5
6
h = Function[{f, g}, f = g, {HoldFirst}];
h[foo, 5];
foo
h[foo, 6];
foo
5
6

关于wolfram-mathematica - 如何给字符串中给定名称的符号赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39549566/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com