【发布时间】:2014-04-09 17:34:36
【问题描述】:
我希望能够通过一个简单的字符串循环为 Julia 中的变量赋值。
例如:
x1, x2, x3, x4 = 14, 12, 34, 19
letters = "abcd"
for i in 1:4
val = get("x$i")
var = letters[i]
assign(var, val)
end
a
14
注意,我选择函数“assign”和“get”是因为我在 R 中习惯了它们。
我想这样做的原因是因为我有一个函数,它接受多个参数,这些参数都是相同的,我认为重复代码没有意义。比如:
function f(a,b,c,d)
if a<0 a==-9999 end
if b<0 b==-9999 end
if c<0 c==-9999 end
if d<0 d==-9999 end
end
当然,我对每个函数应用的功能确实比简单的重新编码命令要长得多。
我想我可以这样做:
function f(a=1,b=2,c=3,d=4, p=[a,b,c,d])
for (i in 1:4)
if p[i]<0
p[i]=-9999
end
end
sum(p)
end
但是,这会给“设置索引”带来其他问题,我需要进一步阅读。感谢您的考虑! 弗朗西斯
【问题讨论】:
-
出于好奇,您认为这比使用数组或字典有什么优势?
-
这种东西不推荐。如答案所示,可以这样做,但这不是一个好主意。
-
你绝对应该做类似后一种尝试的事情。我修复了它,因此语法正确,并且它实际上运行了。