I want to enter several matrices at different positions in blocks. There is already a very similar answer here: https://mathematica.stackexchange.com/a/3562/6138
I thought that simply generalizing this function, would yield the correct result. But something seems not to work.
This is my function:
fmetmat[A_?MatrixQ, C_?MatrixQ, D_?MatrixQ, pos_] :=
SparseArray`SparseBlockMatrix[{{1, 1} -> A, {1 + pos, 1} ->
Transpose[C], {1, 1 + pos} -> C, {1 + pos, 1 + pos} -> D},
Dimensions[A] + pos*Dimensions[D]];
But what I get for any integer value of pos is always:

I would like to be able to fill the Matrix in this way, so that if I leave holes in between they show up in the end.
I would like to have, for:


Dmat = IdentityMatrix[5]
And pos=7, the following output

Does somebody understand the logic here and can help me with this?
Thanks!
