2013-05-21 14 views
5

Próbuję ustalić, czy istnieje dobry sposób, aby zamknąć wszystkie dane w MATLAB, z wyjątkiem dla jednego (s), które określam przed ręką, nie są zamknięte. Czy jest taki sposób na zrobienie tego?Zamknij wszystkie dane w MATLAB, z wyjątkiem konkretnych.

Zauważyłem, że tracę dużo czasu na ściganie konkretnych rzeczy do zamknięcia, za każdym razem, gdy działa mój skrypt MATLAB. Dziękuję Ci.

+3

Wyszukiwarka Google spowodowało poniższego linku, który posiada funkcję, która robi dokładnie to, czego szukasz: http: //www.mathworks. com/matlabcentral/fileexchange/24420-close-all-figures-z wyjątkiem tych wymienionych – Alexey

+0

@Alex Niesamowite dzięki! – Spacey

+0

miło mi pomóc, napisałem to jako odpowiedź. – Alexey

Odpowiedz

10

Można spróbować tej

%figures to keep 
figs2keep = [4, 7]; 

% Uncomment the following to 
% include ALL windows, including those with hidden handles (e.g. GUIs) 
% all_figs = findall(0, 'type', 'figure'); 

all_figs = findobj(0, 'type', 'figure'); 
delete(setdiff(all_figs, figs2keep)); 

Oto link to the source

2

Prawdopodobnie najbezpieczniejszym sposobem jest przypisanie uchwytów do zmiennych h1, h2, ... dla każdej z liczb podczas ich generowania, a następnie użycie close(handle) do zamknięcia liczb, których nie chcesz otworzyć.

close() przyjmuje również wektor/macierz uchwytów jako dane wejściowe, więc zawsze można zagregować wektor klamek cyfr do zamknięcia.

+0

Problem polega na tym, że rzeczy zmieniają się bardzo szybko, nie jest to "miłe" środowisko, dużo badań prowadzonych. Więc częściej niż nie, mam kilka liczb otwartych, ale chcę, aby wszystkie były zamknięte, z wyjątkiem liczb 7 i 4. Mam więc nadzieję, że rozwiążę te dwa argumenty, [4 7] i zamknę wszystko inne. . – Spacey

Powiązane problemy