2010-12-27 13 views
55

Ich habe neun offene Zahlen in Matlab (generiert von einer anderen Funktion) und ich möchte sie alle in Datei drucken. Kann jemand die Griffe aller offenen Figuren in MATLAB greifen?Wie bekomme ich die Griffe aller offenen Zahlen in MATLAB

Ich weiß über gcf aber es scheint nicht zu tun, was ich will.

Antwort

72

Es gibt einige Möglichkeiten, dies zu tun. Eine Möglichkeit, dies zu tun, ist alles zu bekommen, die Kinder der root object (dargestellt in früheren Versionen von dem Griff 0):

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

Oder Sie könnten die Funktion verwenden findobj:

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

Wenn eine der die Zahlen haben hidden handles, Sie stattdessen die Funktion findall verwenden können:

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

+1 für 'findall', wusste das nicht. –

+0

Das erste Argument zu 'get()' und 'findall()' ist ein Handle. Was ist gemeint, wenn 0 bereitgestellt wird? –

+2

@MinhTran: Das ist ein Holdover von früheren Versionen, wenn das Wurzelobjekt durch das Handle '0' repräsentiert wurde. Es funktioniert immer noch in neueren Versionen, aber es ist besser, 'Groot' zu verwenden. Ich habe meine Antwort entsprechend aktualisiert. – gnovice

10

ich denke findall sollte

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

14

Eines der besten Dinge funktionieren zu tun ist, müssen nicht für die Griffe zu suchen. Wenn Sie jede Figur erstellen, erfassen Sie ihren Griff.

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

Als einer der Entwickler hier hat mir gesagt:

Sie sind Griffe genannt, weil Sie sollen ihnen halten

+6

Das ist ein guter Punkt, aber es hängt von Ihrer Situation und Ihrem Arbeitsablauf ab. Wenn Sie eine Vielzahl von Zeichenbefehlen verwenden, die verschiedene spezielle Plots aufrufen, und Sie wollen etwas, das sich nur mit dem beschäftigt, was gerade passiert, dann kann es nützlich sein, nach Handles zu fragen. –

+3

Außerdem gibt es da draußen ein paar Funktionen, die viele Zahlen für Sie darstellen ('anova1' wird drei Grafiken darstellen) und sie können Ihnen diese Handles nicht zurückgeben – Tex

4

Sie erhalten haben feine Antworten für die Griffe Masse. Aber ein weiterer Tipp für die ursprüngliche Frage-drucken Sie alle Zahlen zu file: Sie können publish Option verwenden, ohne sich mit Figuren oder Griffe.

+1

+1. Wenn man bedenkt, wie mächtig dieser relativ unbekannte Befehl ist, bin ich überrascht, dass es nicht mehr Upvotes gibt. –

+1

Nur nach Monaten der Abwesenheit eingeloggt, nur um die Antwort zu verbessern, auf die Google mich gerade hingewiesen hat. – user2987828

Verwandte Themen