File Exchange

image thumbnail


version (1.05 KB) by Charles Plum
Display multiple figures simultaneously by tiling the screen with all open figures.


Updated 24 Dec 1998

No License

The TILEFIGS program is used to display multiple figures simultaneously by tiling the screen with all open figures.

TILEFIGS usage: tilefigs ([nrows ncols],border_in pixels)

Restriction: maximum of 100 figure windows

Without arguments, tilefigs will determine the closest N x N grid for all open figures.

TILEFIGS has only been run under Matlab 5

Cite As

Charles Plum (2021). tilefigs.m (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (21)

Josh Philipson

Hi - thanks for sharing, Charles. fwiw; changing the 'sort figure handles' for MATLAB follows

[~,I]=sort( [hands.Number] , 'ascend');

Michael Simpson

Can be usefully combined with to ensure the figures remain in order when tiled.

Niels Barella

Niels Barella

Marcin Konowalczyk

I suggest adding a persistent variable to keep track of the last set position of the figures. Then, before the body of the script is run, you could check whether the figures are already in the position they would be set to and 'return' the script. This makes it more efficient for repeated plotting in a loop.


I wish it would manage dual screen but it works pretty well, thanks

Valerio Biscione

Valerio Biscione



for a version which implements many of the suggestions in the comments


useful function, the overlap problem can be walked around by modifying the line 72


Improvement, so that rows and cols are not limited to the same number (ie with 12 figures this will give you a 3x4 grid):

Change line 35 to
ncols = ceil(numfigs/nrows);


Good program!

To get rid of the figure overlap in later revisions of Matlab, just subtrac 30 from ylen. An easy way to do this is to change line 68 to:

set(hands(pnum),'Position',[ xpos ypos xlen ylen-30 ]); % move figure


As mentioned earlier, there is a slight overlap issue in later revisions, but this is a minor issue. Thanks!


Looks like it only works if figure units are pixels. Should check for actual units, save them, do tiling, then restore original units.
Should also allow a selection of figure handles to be passed, rather than always tiling all figures.

Dimitri Shvorob

Works even with Matlab 2008a, but not quite perfectly: figures overlap slightly.

Ben Abbott

Did just what I wanted it to do.
I'm running MATLAB Version (R2006a) on Mac OS 10.4.7.
This routine doesn't respect the dock, and since Matlab does, this creates problem when tiling 1 row of figures and filling the screen. For example,

>> tilefigs([1,N])

However, this problem is easily resolved by increasing the rows a bit :-)

>> tilefigs(1.1,N)

Stephan Lennartz

good function,
works still under ML-R14 (Version 7.1..)!
Here's a little test-program for trying out:
- - - - - - - - - - -
function test_tilefigs
%% test-function for tilefigs
% feel free to modify the constants
N=0; % counting index for creating figures
for R=(1:4); % Rows
for C=(1:5) % Columns
N=N+1; % count index starts with 1 and will not be incr finally
figure (N); % create a number of figures

%% CALL tilefigs, display for 5 s and remove the figures again
tilefigs ([R C],1); % R rows, C columns , 10 pixels border
pause(5); % wait 5 s
for indx=(1:N); close(figure(indx)); end
end % test-function

Linda Hamilton

It seems that it doesn't tile the figures properly if I am using 19" TFT screen. Any suggestions?

Jay Simon

A useful contribution, thanks.

Dennis Dean

It was exactly what I was looking for. Script will save me time. There are some constants embedded within the code that I needed to tweak. I would like to have seen the constants defined as variables at the top of the file

MATLAB Release Compatibility
Created with R10
Compatible with any release
Platform Compatibility
Windows macOS Linux
Tags Add Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!