在Julia中声明多个数组

Dav*_*ang 3 arrays julia

假设我需要声明(但不是初始化)五个10x10数组的值,比如说,A1- A5.Fortran为这种多数组声明提供了很好的语法:

REAL(8), DIMENSION(10,10) :: A1, A2, A3, A4, A5
Run Code Online (Sandbox Code Playgroud)

然而,我所知道的Julia中唯一的方法更为丑陋:

A1 = Array(Float64, 10, 10)
A2 = Array(Float64, 10, 10)
A3 = Array(Float64, 10, 10)
A4 = Array(Float64, 10, 10)
A5 = Array(Float64, 10, 10)
Run Code Online (Sandbox Code Playgroud)

有没有更简洁的方法来声明Julia中相同维度的多个数组?

JKn*_*ght 10

感谢@simonster在另一个问题上提供的一些帮助,您可以使用元编程简洁地声明您的变量,而无需任何运行时开销,

for x = [:A1,:A2,:A3,:A4,:A5]
    @eval $x = Array(Float64,10,10)
end
Run Code Online (Sandbox Code Playgroud)

但是,我们现在可以通过允许您动态生成名称来比Fortran做得更好一步:

for x in [symbol("A"*string(i)) for i=1:100]
    @eval $x = Array(Float64,10,10)
end
Run Code Online (Sandbox Code Playgroud)

这将分配100个阵列A1-A100.感谢@ rickhf12hs对这个想法/实现的评论.