BlockArrays.jl (и, возможно, BlockBandedMatrices.jl ) должно быть тем, что вы ищете, поскольку это делает обработку структур блочной матрицы очень удобной.
Пример(с Strings
с):
julia> using BlockArrays
julia> M = fill("M", 2,2);
julia> J = fill("J", 2,2);
julia> B = BlockArray{String}(undef_blocks, [2,2], [2,2])
4×4 BlockArray{String,2,Array{String,2}}:
#undef #undef │ #undef #undef
#undef #undef │ #undef #undef
────────────────┼────────────────
#undef #undef │ #undef #undef
#undef #undef │ #undef #undef
julia> setblock!(B, M, 1,1);
julia> setblock!(B, M, 2,2);
julia> setblock!(B, J, 1,2);
julia> setblock!(B, J, 2,1);
julia> B
4×4 BlockArray{String,2,Array{String,2}}:
"M" "M" │ "J" "J"
"M" "M" │ "J" "J"
──────────┼──────────
"J" "J" │ "M" "M"
"J" "J" │ "M" "M"
Для получения дополнительной информации ознакомьтесь с документацией пакета .