close

Закройте одни или несколько рисунков

Описание

пример

close закрывает текущую фигуру. Вызывающие close эквивалентно вызывающим close(gcf).

пример

close(fig) закрывает рисунок, заданную как fig.

пример

close all закрывает все рисунки, указатели которых видны. Указатель на рисунок скрыт, если HandleVisibility для свойства задано значение 'callback' или 'off'.

пример

close all hidden закрывает все рисунки, включая рисунки со скрытыми указателями.

пример

close all force закрывает все рисунки, включая рисунки, для которых CloseRequestFcn был задан коллбэк, чтобы запретить пользователям закрывать окно рисунка.

пример

status = close(___) возвращает status операции закрытия для любого из предыдущих синтаксисов. Функция возвращается 1 если рисунок или рисунки закрываются и 0 в противном случае. При указании выхода status, необходимо заключить входные параметры, которые являются векторами символов в круглые скобки; для примера, status = close('all','hidden').

Примеры

свернуть все

Создать два рисунков, каждая с линейным графиком.

f1 = figure;
plot(1:10)

Figure contains an axes. The axes contains an object of type line.

f2 = figure;
plot((1:10).^2)

Figure contains an axes. The axes contains an object of type line.

Закройте первый рисунок и отобразите значение f1.

close(f1)
f1
f1 = 
  handle to deleted Figure

Закройте текущую фигуру.

close

Создать три рисунков, а затем создать линейный график. По умолчанию в plot функция нацелена на текущую фигуру (f3).

f1 = figure;
f2 = figure;
f3 = figure;
plot(1:10)

Figure contains an axes. The axes contains an object of type line.

Закройте рисунков f1 и f2 одновременно.

close([f1 f2])

Создайте два рисунков с заданными числами. Включите линейный график в каждый рисунок.

figure(1)
plot(1:10)

Figure contains an axes. The axes contains an object of type line.

figure(2)
plot((1:10).^2)

Figure contains an axes. The axes contains an object of type line.

Закройте второй рисунок, передав ее номер в close функция.

close(2)

Создать рисунок, задать ее имя, а затем создать линейный график.

figure('Name','Measured Data');
plot(1:10)

Figure Measured Data contains an axes. The axes contains an object of type line.

Закройте рисунок по ее имени.

close('Measured Data')

Создать два рисунков, каждая с линейным графиком.

f1 = figure;
plot(1:10)

Figure contains an axes. The axes contains an object of type line.

f2 = figure;
plot((1:10).^2)

Figure contains an axes. The axes contains an object of type line.

Закройте рисунок f1. Проверьте, что рисунок закрыт, отобразив ее состояние.

status = close(f1)
status = 1

Создайте три рисунков, указатели на которые видны, и включите линейный график в каждый рисунок.

f1 = figure;
plot(1:10)

Figure contains an axes. The axes contains an object of type line.

f2 = figure;
plot((1:10).^2)

Figure contains an axes. The axes contains an object of type line.

f3 = figure;
plot(1./(1:10))

Figure contains an axes. The axes contains an object of type line.

Закройте все рисунки одновременно.

close all

Создать три рисунков, каждая с линейным графиком. Установите HandleVisibility свойство последнего рисунка, которое должно быть 'off'.

f1 = figure;
plot(1:10)

Figure contains an axes. The axes contains an object of type line.

f2 = figure;
plot((1:10).^2)

Figure contains an axes. The axes contains an object of type line.

f3 = figure('HandleVisibility','off');
plot(1./(1:10))

Figure contains an axes. The axes contains an object of type line.

Закройте все рисунки. Заметьте, что вы не можете закрыть f3 по вызову close all потому что у него есть скрытый указатель.

close all hidden

The CloseRequestFcn свойство позволяет вам задать коллбэк запроса на закрытие, который выполняется каждый раз, когда пользователь пытается закрыть окно рисунка. Например, можно отобразить диалоговое окно с просьбой подтвердить или отменить операцию закрытия или запретить пользователям закрывать рисунок, содержащую пользовательский интерфейс.

Создайте рисунок, окно которой невозможно закрыть путем установки CloseRequestFcn свойство для пустого символьного вектора. Затем добавьте линейного графика к рисунку.

f1 = figure('CloseRequestFcn','');
plot(1:10)

Figure contains an axes. The axes contains an object of type line.

Создать второй рисунок с линейным графиком.

f2 = figure;
plot((1:10).^2)

Figure contains an axes. The axes contains an object of type line.

Если вы пытаетесь закрыть рисунки с помощью close all синтаксис, MATLAB ® закроется только f2. Чтобы закрыть оба f1 и f2, используйте close all force синтаксис.

close all force

Входные параметры

свернуть все

Фигура для закрытия, заданный как один или несколько Figure объекты, номера рисунков или имена рисунков.

  • Если fig - число рисунка, MATLAB® ищет существующий рисунок, на которой Number свойство равно fig. По умолчанию в Number значение свойства отображается в заголовке рисунка.

  • Если fig является именем рисунка, MATLAB ищет существующий рисунок, в которой Name свойство равно fig.

Пример: close(f) закрывает рисунок указателем f.

Пример: close([f1 f2]) закрывает рисунки указателями f1 и f2.

Пример: close(1) закрывает рисунок числом 1.

Пример: close([1 2]) закрывает рисунки числами 1 и 2.

Пример: close('My Figure') закрывает рисунок с именем 'My Figure'.

Пример: close('My First Figure','My Second Figure') закрывает рисунки именами 'My First Figure' и 'My Second Figure'.

Совет

  • Чтобы безоговорочно удалить все рисунки, используйте следующие операторы:

    set(groot,'ShowHiddenHandles','on')
    c = get(groot,'Children');
    delete(c)

  • При реализации CloseRequestFcn коллбэк, не используйте вызов для close. Вызов close в теле коллбэка устанавливается рекурсия, которая приводит к предупреждению MATLAB. Вместо этого реализуйте коллбэк с помощью delete функция. delete удаляет рисунок, не выполняя CloseRequestFcn коллбэк.

  • Если вы звоните close на рисунке, не задавая CloseRequestFcn свойство, значение по умолчанию свойства, closereq, безоговорочно удаляет рисунок и закрывает ее окно. Чтобы предотвратить удаление при вызове close, реализуйте CloseRequestFcn коллбэк.

Алгоритмы

close функция оценивает CloseRequestFcn свойство заданного рисунка f используя этот оператор:

eval(get(f,'CloseRequestFcn'))

CloseRequestFcn позволяет задержать или прервать закрытие рисунка один раз close был вызван. Например, можно открыть диалоговое окно, чтобы подтвердить, что пользователь действительно хочет закрыть рисунок или сохранить и очистить перед закрытием.

Значение по умолчанию CloseRequestFcn, closereq, закрывает текущую фигуру, используя delete(get(groot,'CurrentFigure')). Если вы задаете массив указателей на рисунок, close выполняет коллбэк, заданную как CloseRequestFcn для каждого рисунка.

Если ошибка прекращает выполнение CloseRequestFcn коллбэк, тогда рисунок не закроется.

См. также

Функции

Свойства

Представлено до R2006a