In this case I want the off-diagonal blocks to be zero, and would prefer to leave the sizes implicit. Is there a way to use some type such that the sizes are inferred automatically, and the expression may look something like
[A ZerosFill()
ZerosFill() B]
where ZerosFill() would be replaced by zeros of compatible sizes (or perhaps Zeros from FillArrays).
Had these been square matrices, I could have used the UniformScaling0I to represent the zeros as
I realize that in this case I can read the sizes off the arrays, however this becomes difficult if there are more arrays involved. In any case I was hoping that I may leave the sizes implicit, and have it inferred from the context.
If your final matrix is something like an irregular-sized checker-board with one field per column/row, you still can infer it before assembly (Tuple, for loop).
If there are several filled subarrays per column/row, you need more code, but should be doable.
Based on the code for I (UniformScaling), it shouldn’t be very hard to do: julia/uniformscaling.jl
When there is only one per row, it should be quite easy, but if there is multiple on one row, we can’t know their widths because the submatrix widths are not required to match with the previous line