This creates a new figure containing subplots of other currently open figures including all non-colorbar axes in the figure (i.e. including subplots).
example: i have figures 12 15 18 open. and I want a montage with 12 and 15 on the first line and 18 on the next.
mfig = MontageFigures([12 15 18], 2,2)
where the horizontal length is the first 2
vertical length is the second 2. This will leave the 4th subplot (2,2) empty.
mfig is the handle to the new figure.
This is similar to the code figs2subplots, but after very few attempts, I couldn't get that to work. So here's something that should work. And it's very simple.
You specify the axis properties that you'd like copied over from the old figures at the beginning of the file. I have a prototype set included.
The code simply copies all of the children of each figures' axes and puts them as children of the subplot axes. Then copies the specified properties to the subplot axes.
In the code you can now adjust size/position of new fig, margins, spacing between subplots. You can also set whether to add ticks and labels only to perimeter plots, if you have many images with the same limits/labels.
If you want to do this with unopened files use the montagefigurefiles(columns,rows), and you will be prompted for the files to use.
If you don't like this script, you can try using:
which I didn't bother to look at, but I'm open to it being better. :)
Nick Sinclair (2023). MontageFigures (https://www.mathworks.com/matlabcentral/fileexchange/27713-montagefigures), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!
fixed a typo, referring to incorrect axis for xlabel
Fixed problem of copying over legends as separate axes, and added ability to copy legends in an appropriate way.
Added montagefigurefies.m AND ability to replot the subplots of other figures.
Can now adjust
just verified it works fine with 7.10 2010a.