How can I fill an array with empty 2D arrays?

If you’re replacing the entire array that’s fine, but if you intend to predefine and then fill them, it’s still a problem:

x = fill(Matrix{Float64}(undef,2,2), 3);

julia> x
3-element Vector{Matrix{Float64}}:
 [2.75859452845e-313 3.3951932658e-313; 2.33419537065e-313 6.94677762088306e-310]
 [2.75859452845e-313 3.3951932658e-313; 2.33419537065e-313 6.94677762088306e-310]
 [2.75859452845e-313 3.3951932658e-313; 2.33419537065e-313 6.94677762088306e-310]

julia> x[1][1,1] = 5
5

julia> x
3-element Vector{Matrix{Float64}}:
 [5.0 3.3951932658e-313; 2.33419537065e-313 6.94677762088306e-310]
 [5.0 3.3951932658e-313; 2.33419537065e-313 6.94677762088306e-310]
 [5.0 3.3951932658e-313; 2.33419537065e-313 6.94677762088306e-310]