Ваша программа может предупреждения о проблемах, которые не всегда оказывают негативное влияние на выполнение. Чтобы избежать беспорядка, можно скрыть предупреждающие сообщения во время выполнения путем изменения их состояний от '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')
Включите предупреждение и попытайтесь удалить несуществующий путь:
warning('on',id) rmpath('folderthatisnotonpath')
Warning: "folderthatisnotonpath" not found in path.
Выключите последний раз вызванное предупреждение с 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'.