Inisialisasi array renggang sembarang di Julia

Membaca pertanyaan terkait, saya menemukan bahwa seseorang dapat menginisialisasi array arbitrer di julia sebagai

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

Saya ingin menginisialisasi sesuatu yang serupa, tetapi saya ingin memasukkan matriks renggang ke dalam array tersebut. Konstruksi terakhir ini tidak berfungsi dalam kasus ini.

Bagaimana saya bisa membuat array arbitrer yang berisi array yang jarang?

Sebenarnya masalah saya sedikit lebih spesifik. Di setiap entri B saya ingin meletakkan matriks renggang yang berbeda. Matriks renggang memiliki dimensi tetap dan saya mengetahui sebelumnya berapa banyak matriks renggang yang ingin saya masukkan ke dalam B.


person user2820579    schedule 10.07.2020    source sumber


Jawaban (1)


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

Inilah yang akan Anda dapatkan:

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

Harap dicatat bahwa Anda tidak dapat menggunakan fill untuk itu karena semua elemen B akan mereferensikan array renggang yang sama.

person Przemyslaw Szufel    schedule 10.07.2020