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

Ваша программа может предупреждения о проблемах, которые не всегда оказывают негативное влияние на выполнение. Чтобы избежать беспорядка, можно скрыть предупреждающие сообщения во время выполнения путем изменения их состояний от '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'.

Похожие темы