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.

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top