This does not create an array of figures, but merely an array of axes. Just run get(get(subfigure(m,n),'Children'),'Type')
What I was hoping was to get a set of figure handles. Is that not possible in Matlab? Is there an easy way to position and scale all the children of a given figure to a new figure, with all their relative positions preserved?