exponenta event banner

закрыть

Закрыть одну или несколько фигур

Описание

пример

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

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