arrays - 数组数组的预分配

标签 arrays julia allocation

在 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]
这将分配一个 VectorArray s。在 Julia 的理解中,您可以迭代更多维度,因此也可以使用更高维度。

关于arrays - 数组数组的预分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66472792/

相关文章:

javascript - 2D Javascript 数组未返回 "Second Dimension Arrays"的正确长度

julia - 当文件句柄超出范围时,Julia 是否会自动关闭文件?

c++ - C++ 中的内存分配(抛出异常 : read access violation.)

c - 将内存分配给包含结构体矩阵的结构体,该结构体本身包含整数矩阵

c - C 中的内存分配和传递多个数字

arrays - 在汇编程序中初始化数组

python - 返回两个 3xN 数组的叉积的方法(例如时间相关向量)

python - 映射数字数组以在 Python 中有效排名

string - 为什么在Julia中不建议对UTF8字符串进行索引?

julia - 将正则表达式匹配转换为字符串