Какой самый простой способ найти идентификаторы сообщений предупреждений Matlab? - PullRequest
2 голосов
/ 17 апреля 2019

Все предупреждения Matlab имеют идентификатор сообщения.Его можно найти с помощью встроенного метода lastwarn, например:

>> A=zeros(6,6); inv(A); [~,msgID] = lastwarn

Warning: Matrix is singular to working precision. 

 msgID =

'MATLAB:singularMatrix'

Но это работает только тогда, когда под рукой имеется специальное предупреждение.Если симуляция выдает много разных предупреждений, как мне получить их идентификаторы сообщений?Проходить симуляцию и приостанавливать ее для использования lastwarn не кажется удобным.Можно ли настроить встроенный метод предупреждения для печати идентификаторов сообщений?

1 Ответ

2 голосов
/ 17 апреля 2019

Функция warning имеет несколько полезных флагов, которые можно использовать.Для вашей цели где-нибудь вверху вашего кода или в консоли введите:

warning ON VERBOSE

или эквивалент:

warning('on','verbose')

Что в соответствии с документацией:

WARNING ON VERBOSE и WARNING OFF VERBOSE управляют отображением дополнительной строки полезного текста, содержащего идентификатор предупреждения, когда отображается предупреждение.


Если этот флаг установлен, выВы получите msg ID каждого предупреждения (не нужно звонить lastwarn):

>> A=zeros(6,6); inv(A);
Warning: Matrix is singular to working precision.
(Type "warning off MATLAB:singularMatrix" to suppress this warning.)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...