在 julia 中,可以预先分配给定 type
的数组。和 dims
和
A = Array{<type>}(undef,<dims>)
10x10 浮点矩阵的示例A = Array{Float64,2}(undef,10,10)
但是,对于数组的数组预分配,似乎无法为底层数组提供预分配。例如,如果我想初始化
n
的向量复杂浮点数矩阵我只能算出这个语法,A = Vector{Array{ComplexF64,2}}(undef, n)
但是我怎么能预先分配向量中每个数组的大小,除了之后的循环?我试过例如A = Vector{Array{ComplexF64,2}(undef,10,10)}(undef, n)
这显然不起作用。
最佳答案
在您描述的情况下,您需要使用理解:
a = [Matrix{ComplexF64}(undef, 2,3) for _ in 1:4]
这将分配一个 Vector
的 Array
s。在 Julia 的理解中,您可以迭代更多维度,因此也可以使用更高维度。
关于arrays - 数组数组的预分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66472792/