J'ai neuf figures ouvertes dans matlab (générées par une autre fonction) et je veux les imprimer toutes dans un fichier. Est-ce que quelqu'un sait comment saisir les poignées de toutes les figures ouvertes dans MATLAB?
Je connais gcf
mais il ne semble pas faire ce que je veux.
Il y a quelques façons de le faire. Une façon de faire est d'obtenir tous les enfants de objet racine (représenté dans les versions précédentes par le handle 0
):
figHandles = get(groot, 'Children'); % Since version R2014b
figHandles = get(0, 'Children'); % Earlier versions
Ou vous pouvez utiliser la fonction findobj
:
figHandles = findobj('Type', 'figure');
Si l'une des figures a poignées cachées , vous pouvez utiliser à la place la fonction findall
:
figHandles = findall(groot, 'Type', 'figure'); % Since version R2014b
figHandles = findall(0, 'Type', 'figure'); % Earlier versions
L'une des meilleures choses à faire est de NE PAS avoir besoin de chercher les poignées. Lorsque vous créez chaque figure, capturez sa poignée.
h(1) = figure;
h(2) = figure;
...
Comme l'un des développeurs ici m'a dit:
On les appelle des poignées, car vous êtes censé les garder
Je pense que findall devrait fonctionner
handles=findall(0,'type','figure')
Vous avez de bonnes réponses pour la masse des poignées. Mais une autre astuce pour la question d'origine - imprimez toutes les figures à classer: vous pouvez utiliser l'option publish
, sans avoir à traiter les figures ou les poignées.