【发布时间】:2014-11-22 03:48:45
【问题描述】:
我想使用元编程回答 this question,但 for 循环的范围规则导致我的变量未在最上层 (REPL) 范围内定义:
for x = [:A1, :A2]
@eval x = rand(2,2)
end
我知道可能有一个简单的方法可以解决这个问题,但我周五晚上的大脑想不出一个。你们中的一个元编程迷可以帮我找到一个简洁的解决方案吗? (我意识到宏可能适用于转义,但我正在尝试想一些更短的东西)
【问题讨论】:
-
我也看到了,想知道如果你有一百个 A,你将如何对其进行元编程。
for x=1:100然后呢?如何以编程方式命名变量? -
回答了我自己的评论/问题。
for k=1:10 my_sym = symbol("A"*string(k)); @eval $my_sym = rand(2,2) end(此处显示生成 A1 到 A10。)
标签: metaprogramming julia