在Julia中初始化任意稀疏数组

3

阅读相关问题,我发现在Julia中可以初始化任意数组如下:

B = Array{Complex{Float64}}(undef, 0, 0)

我希望初始化一个类似的东西,但是我想在这个数组中放置稀疏矩阵。在这种情况下,最后一个构造方法不起作用。

我该如何构建包含稀疏矩阵的任意数组?

实际上,我的问题有点更具体。在每个B条目中,我想放置不同的稀疏矩阵。稀疏矩阵具有固定的尺寸,我事先知道要将多少个稀疏矩阵放入B中。

1个回答

3
B = [spzeros(2,2) for i in 1:2, j in 1:3]

以下是您将获得的内容:

julia> B = [spzeros(2,2) for i in 1:2, j in 1:3]
2×3 Array{SparseMatrixCSC{Float64,Int64},2}:
 2×2 SparseMatrixCSC{Float64,Int64} with 0 stored entries  2×2 SparseMatrixCSC{Float64,Int64} with 0 stored entries  2×2 SparseMatrixCSC{Float64,Int64} with 0 stored entries
 2×2 SparseMatrixCSC{Float64,Int64} with 0 stored entries  2×2 SparseMatrixCSC{Float64,Int64} with 0 stored entries  2×2 SparseMatrixCSC{Float64,Int64} with 0 stored entries

请注意,您不能使用 fill 来做到这一点,因为所有的 B 元素都会引用同一个稀疏数组。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接