2010-12-27 16 views

Odpowiedz

72

Istnieje kilka sposobów, aby to zrobić. Jednym ze sposobów, aby to zrobić, aby wszystkie dzieci z root object (reprezentowane w poprzednich wersjach za uchwyt 0):

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

Albo można użyć funkcji findobj:

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

Jeżeli którykolwiek z liczby mają hidden handles, można zamiast tego użyć funkcji findall:

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

+1 dla 'findall', nie znałem tego. –

+0

Pierwszy argument dla 'get()' i 'findall()' jest uchwytem. Co oznacza "0"? –

+2

@MinhTran: To wstrzymanie z poprzednich wersji, gdy obiekt główny był reprezentowany przez uchwyt '0'. Nadal działa w nowszych wersjach, ale lepiej używać 'groot'. Odpowiednio zaktualizowałem swoją odpowiedź. – gnovice

10

myślę findall powinien działać

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

14

Jedną z najlepszych rzeczy do zrobienia jest, aby nie trzeba szukać uchwytów. Gdy tworzysz każdą figurę, uchwyć jej uchwyt.

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

Jako jeden z twórców tutaj powiedział mi:

Nazywane są uchwyty, bo mają się trzymać z nimi

+6

To dobry punkt, choć zależy to od twojej sytuacji i przepływu pracy. Jeśli masz wiele różnych komend kreślących, które wywołują różne wyspecjalizowane wątki i chcesz czegoś, co "radzi sobie z tym, co już się wydarzyło", przydatna może być możliwość zapytania o uchwyty. –

+3

Jest tam także kilka funkcji, które będą dla ciebie przygotowywać wiele liczb ("anova1" spiskują trzy) i mogą nie zwrócić ci tych uchwytów – Tex

4

Masz uzyskać precyzyjne odpowiedzi dla obsługuje masę. Ale kolejna wskazówka na oryginalne pytanie - wypisz wszystkie liczby do pliku: możesz użyć opcji publish, bez zajmowania się dowodami ani uchwytami.

+1

+1. Biorąc pod uwagę, jak potężne jest to stosunkowo nieznane polecenie, jestem zaskoczony, że nie ma więcej przebojów. –

+1

Po prostu zalogowałem się po miesiącach nieobecności, tylko po to, aby upomnieć się o tę odpowiedź, którą Google właśnie mi wskazał. – user2987828

Powiązane problemy