Comment puis-je obtenir les poignées de toutes les figures ouvertes dans Matlab
-
13-10-2019 - |
Question
J'ai neuf chiffres ouverts dans Matlab (généré par une autre fonction) et je veux les imprimer dans un fichier. Est-ce que quelqu'un sait comment saisir les poignées de toutes les figures ouvertes dans Matlab?
Je sais à propos gcf
mais il ne semble pas faire ce que je veux.
La solution
Il y a quelques façons de le faire. Une façon de le faire est d'obtenir tous les enfants du objet racine (représenté dans les versions précédentes de la 0
poignée):
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 des chiffres ont poignées cachées , vous pouvez plutôt utiliser la fonction findall
:
figHandles = findall(groot, 'Type', 'figure'); % Since version R2014b
figHandles = findall(0, 'Type', 'figure'); % Earlier versions
Autres conseils
L'une des meilleures choses à faire est de ne pas besoin de chercher les poignées. Lorsque vous créez chaque figure, saisir la poignée.
h(1) = figure;
h(2) = figure;
...
Comme l'un des développeurs ici m'a dit:
Ils sont appelés poignées, parce que vous êtes censé les retenir
Je pense que findall devrait fonctionner
handles=findall(0,'type','figure')
Vous avez obtenir des réponses fines pour la masse des poignées. Mais une autre astuce pour l'original question- imprimer tous les chiffres dans le fichier: vous pouvez utiliser publish
option sans traiter avec figrues ou poignées.