# How do I get the handles of all open figures in MATLAB

MatlabMatlab FigureFigures## Matlab Problem Overview

I have nine open figures in matlab (generated by another function) and I want to print them all to file. Does anyone know how to grab the handles of all open figures in MATLAB?

I know about `gcf`

but it doesn't seem to do what I want.

## Matlab Solutions

## Solution 1 - Matlab

There are a few ways to do this. One way to do this is to get all the children of the root object (represented in prior versions by the handle `0`

):

```
figHandles = get(groot, 'Children'); % Since version R2014b
figHandles = get(0, 'Children'); % Earlier versions
```

Or you could use the function `findobj`

:

```
figHandles = findobj('Type', 'figure');
```

If any of the figures have hidden handles, you can instead use the function `findall`

:

```
figHandles = findall(groot, 'Type', 'figure'); % Since version R2014b
figHandles = findall(0, 'Type', 'figure'); % Earlier versions
```

## Solution 2 - Matlab

One of the best things to do is to NOT need to look for the handles. When you create each figure, capture its handle.

```
h(1) = figure;
h(2) = figure;
...
```

As one of the developers here told me:

> They are called handles, because you are supposed to hold on to them

## Solution 3 - Matlab

I think findall should work

`handles=findall(0,'type','figure')`

## Solution 4 - Matlab

You've get fine answers for the handles mass. But another tip for the original question- print all the figures to file: you can use `publish`

option, without dealing with figrues or handles.