Отключить предупреждения

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

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

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

Примечание

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

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

Чтобы получить информацию о последний раз выданном предупреждении, используйте функции lastwarn или warning. Этот код использует состояние 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'.

Похожие темы

Была ли эта тема полезной?