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)

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

Закройте первую фигуру и отобразите значение f1.

close(f1)
f1
f1 = 
  handle to deleted Figure

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

close

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

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

Закройтесь изображает f1 и f2 одновременно.

close([f1 f2])

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

figure(1)
plot(1:10)

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

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

close(2)

Создайте фигуру, задайте его имя, и затем постройте график.

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

Закройте фигуру, использующую его имя.

close('Measured Data')

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

f1 = figure;
plot(1:10)

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

Закройтесь изображают f1. Проверьте, что фигура закрывается путем отображения его состояния.

status = close(f1)
status = 1

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

f1 = figure;
plot(1:10)

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

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

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

close all

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

f1 = figure;
plot(1:10)

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

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

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

close all hidden

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

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

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

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

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

При попытке закрыть фигуры, использующие 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 'callback'.

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

Алгоритмы

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

eval(get(f,'CloseRequestFcn'))

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

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

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

Смотрите также

Функции

Свойства

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