gpt4 book ai didi

arrays - 在 Julia 中声明多个数组

转载 作者:行者123 更新时间:2023-12-04 22:30:55 26 4
gpt4 key购买 nike

假设我需要声明(但不初始化)五个 10x10 数组,命名为 A1 - A5 。 Fortran 对这种多数组声明有一个很好的语法:

REAL(8), DIMENSION(10,10) :: A1, A2, A3, A4, A5

但是,我所知道的 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)

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

最佳答案

感谢@simonster 在 another question 中的一些帮助,您可以使用元编程简洁地声明变量,而无需任何运行时开销,

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

但是,通过允许您动态生成名称,我们现在可以比 Fortran 做得更好:
for x in [symbol("A"*string(i)) for i=1:100]
@eval $x = Array(Float64,10,10)
end

这将分配 100 个数组 A1-A100。感谢@rickhf12hs 对这个想法/实现的评论。

关于arrays - 在 Julia 中声明多个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26042691/

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