Comment obtenir les poignées de toutes les figures ouvertes dans MATLAB
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.