exponenta event banner

Подавление предупреждений

Программа может выдавать предупреждения, которые не всегда отрицательно влияют на выполнение. Чтобы избежать путаницы, можно скрыть предупреждающие сообщения во время выполнения, изменив их состояния с 'on' кому 'off'.

Для подавления определенных предупреждающих сообщений сначала необходимо найти идентификатор предупреждения. Каждое предупреждающее сообщение имеет уникальный идентификатор. Чтобы найти идентификатор, связанный с предупреждением MATLAB ®, воспроизведите предупреждение. Например, этот код воспроизводит предупреждение при попытке MATLAB удалить несуществующую папку:

rmpath('folderthatisnotonpath')
Warning: "folderthatisnotonpath" not found in path. 

Примечание

Если эта инструкция не выдает предупреждающее сообщение, используйте следующий код, чтобы временно включить отображение всех предупреждений, а затем восстановить исходное состояние предупреждения:

w = warning ('on','all');
rmpath('folderthatisnotonpath')
warning(w)

Для получения информации о последнем выданном предупреждении используйте warning или lastwarn функции. Этот код использует query состояние для возврата структуры данных, содержащей идентификатор и текущее состояние последнего предупреждения:

w = warning('query','last')
w = 

    identifier: 'MATLAB:rmpath:DirNotFound'
         state: 'on'
Поле идентификатора можно сохранить в переменной. id:
id = w.identifier;

Примечание

warning('query','last') возвращает последнее отображенное предупреждение. MATLAB отображает только предупреждающие сообщения, которые имеют state: 'on' и идентификатор предупреждения.

Использование lastwarn можно получить последнее предупреждающее сообщение независимо от состояния его отображения:

lastwarn
ans =

"folderthatisnotonpath" not found in path.

Включить и выключить предупреждения

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

Продолжая пример из предыдущего раздела, переверните предупреждение 'MATLAB:rmpath:DirNotFound' выкл., и повторите операцию.

warning('off',id)
rmpath('folderthatisnotonpath')

MATLAB не отображает предупреждения.

Включите предупреждение и попробуйте удалить несуществующий путь:

warning('on',id)
rmpath('folderthatisnotonpath')
Warning: "folderthatisnotonpath" not found in path.

Теперь MATLAB выдает предупреждение.

Совет

Отключить последнее вызванное предупреждение с помощью warning('off','last').

Управление всеми предупреждениями

Термин все относится только к предупреждениям, которые были выданы или изменены во время текущего сеанса MATLAB. Измененные состояния предупреждения сохраняются только в текущем сеансе. При запуске нового сеанса восстанавливаются параметры по умолчанию.

Использовать идентификатор 'all' для представления группы всех предупреждений. Просмотрите состояние всех предупреждений с помощью синтаксиса:

warning('query','all')
warning

Для включения всех предупреждений и проверки состояния:

warning('on','all')
warning('query','all')
All warnings have the state 'on'.

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

warning('off','all')
warning
All warnings have the state 'off'.

Связанные темы