предупреждение

Отобразите предупреждающее сообщение

Синтаксис

warning(msg)
warning(msg,A1,...,An)
warning(msgID,___)
warning(state)
warning(state,msgID)
предупреждение
warnStruct = warning
warning(warnStruct)
warning(state,mode)
warnStruct = warning(state,mode)

Описание

пример

warning(msg) отображает предупреждающее сообщение и устанавливает состояние предупреждения для функции lastwarn. Если msg пуст, warning сбрасывает состояние предупреждения для lastwarn, но не отображает текста.

warning(msg,A1,...,An) отображает сообщение, которое содержит символы преобразования форматирования, такие как используемые с функцией MATLAB® sprintf. Каждый символ преобразования в msg преобразован в одно из значений A1,...,An.

warning(msgID,___) присоединяет идентификатор предупреждения к предупреждающему сообщению. Можно включать любой из входных параметров в предыдущих синтаксисах. Идентификатор позволяет вам отличить предупреждения и управлять тем, что происходит, когда MATLAB сталкивается с предупреждениями.

пример

warning(state) включает, отключает или отображает состояние всех предупреждений.

warning(state,msgID) действует на состояние заданного предупреждения.

warning отображает состояние всех предупреждений. Это эквивалентно warning('query').

пример

warnStruct = warning возвращает структуру или массив структур, который содержит информацию, о которой предупреждения включены и отключены. warnStruct включает поле identifier с msgID или 'all', и поле state, которое указывает на состояние соответствующего предупреждения.

warning(warnStruct) устанавливает текущие настройки предупреждения, как обозначено в массиве структур, warnStruct.

пример

warning(state,mode) управляет, отображает ли MATLAB информацию трассировки стека или дополнительную информацию о предупреждении.

warnStruct = warning(state,mode) возвращает структуру с полем identifier, содержащим mode и поле state, содержащее текущее состояние mode. Если вы передаете выходную структуру, warnStruct, в функцию warning, вы устанавливаете состояние mode, не, какие предупреждения включены или отключены.

Примеры

свернуть все

Сгенерируйте предупреждение, которое отображает сообщение.

n = 7;
if ~ischar(n)
   warning('Input must be a character vector')
end
Warning: Input must be a character vector

Включайте информацию о n в предупреждающем сообщении.

if ~ischar(n)
   warning('Input must be a character vector, not a %s',class(n))
end
Warning: Input must be a character vector, not a double

Присоедините идентификатор сообщения к предупреждающему сообщению.

if ~ischar(n)
   warning('MyComponent:incorrectType',...
       'Input must be a character vector, not a %s',class(n))
end
Warning: Input must be a character vector, not a double 

Отключите все предупреждения.

warning('off')

Запросите предупреждения.

warning
All warnings have the state 'off'.

Включите все предупреждения, отключите сингулярное матричное предупреждение и запросите все предупреждения.

warning('on')
warning('off','MATLAB:singularMatrix')
warning
The default warning state is 'on'. Warnings not set to the default are

State  Warning Identifier

    off  MATLAB:singularMatrix

Повторно включите сингулярное матричное предупреждение.

warning('on','MATLAB:singularMatrix')

Включите все предупреждения, и затем отключите сингулярное матричное предупреждение.

warning('on')
warning('off','MATLAB:singularMatrix')

Сохраните текущие настройки предупреждения.

s = warning
s = 

2x1 struct array with fields:

    identifier
    state

Исследуйте эти две структуры.

s(1)
ans = 

    identifier: 'all'
         state: 'on'
s(2)
ans = 

    identifier: 'MATLAB:singularMatrix'
         state: 'off'

Все предупреждения включены за исключением 'MATLAB:singularMatrix'.

Отключите и запросите все предупреждения.

warning('off')
warning('query')
All warnings have the state 'off'.

Восстановите сохраненную структуру состояния предупреждения и запросите состояние.

warning(s)
warning('query')
The default warning state is 'on'. Warnings not set to the default are

State  Warning Identifier

    off  MATLAB:singularMatrix

Гарантируйте, что настройки verbose и backtrace являются значениями по умолчанию.

warning('off','verbose')
warning('on','backtrace')

Включите все предупреждения и удалите папку, которая не существует на пути MATLAB.

warning('on')
rmpath('nosuchfolder')
Warning: "nosuchfolder" not found in path. 
> In rmpath at 57 

Позвольте многословию отобразить расширенное предупреждающее сообщение.

warning('on','verbose')
rmpath('nosuchfolder')
Warning: "nosuchfolder" not found in path.
(Type "warning off MATLAB:rmpath:DirNotFound" to suppress this warning.)
 
> In rmpath at 57 

Отключите отображение трассировки стека.

warning('off','backtrace')
rmpath('nosuchfolder')
Warning: "nosuchfolder" not found in path.
(Type "warning off MATLAB:rmpath:DirNotFound" to suppress this warning.)

Вычислите сингулярную матрицу.

A = eye(2);
B = [3 6; 4 8];
C = B\A;
Warning: Matrix is singular to working precision.

Найдите ID предупреждения, сохраните текущее состояние предупреждения и отключите определенное предупреждение

[msgStr,msgId] = lastwarn;
warnStruct = warning('off',msgId);
C = B\A;

Восстановите предыдущее состояние предупреждения.

warning(warnStruct);
C = B\A;
Warning: Matrix is singular to working precision.

Входные параметры

свернуть все

Информация о причине предупреждения и как вы можете исправить его, заданный как вектор символа или представить скаляр в виде строки. Чтобы отформатировать сообщение, используйте escape-последовательности, такие как \t или \n. Также можно использовать любые спецификаторы формата, поддержанные функцией sprintf, такие как %s или %d. Задайте значения для спецификаторов преобразования через входные параметры A1,...,An. Для получения дополнительной информации см. текст Форматирования.

Примечание

Необходимо задать больше чем один входной параметр с warning, если вы хотите, чтобы MATLAB преобразовал специальные символы (такие как \t, \n, %s и %d) в предупреждающем сообщении.

Пример: 'Введите, должен быть вектор символа'.

Значения, которые заменяют спецификаторы преобразования в msg, заданном как вектор символа, представляют в виде строки скаляр или числовой скаляр.

Идентификатор для предупреждения, заданного как вектор символа, представляет в виде строки скаляр, 'all' или 'last'. Используйте идентификатор предупреждения, чтобы помочь идентифицировать источник предупреждения или управлять выбранным подмножеством предупреждений в вашей программе.

Идентификатор сообщения включает component и mnemonic. Идентификатор должен всегда содержать двоеточие и следует за этим простым форматом: component:mnemonic. Поля component и mnemonic должны каждый начаться с буквы. Оставшиеся символы могут быть буквенно-цифровым индикатором (A–Z, a–z, 0–9) и символы нижнего подчеркивания. Никакие пробельные символы не могут появиться нигде в msgID. Для получения дополнительной информации смотрите Идентификаторы сообщений.

Когда вы устанавливаете state предупреждения, msgID может иметь значение 'all' или 'last'. Используйте 'all', чтобы установить состояние всех предупреждений и использовать 'last', чтобы установить состояние последнего выданного предупреждения.

Пример: MATLAB: singularMatrix'

Пример: MATLAB: narginchk: notEnoughInputs'

Предупреждая индикатор управления, заданный как 'on', 'off' или 'query'. Используйте 'on' или 'off', чтобы управлять, выдает ли MATLAB предупреждение. Используйте 'query', чтобы запросить текущее состояние предупреждения.

Предупреждение настроек, заданных как структура или массив структур, который содержит информацию, о которой включены предупреждения и которые отключены. warnStruct включает поле identifier с msgID или 'all', и поле state, указывающее на состояние соответствующего предупреждения.

Многословие и отображение трассировки стека настроек, заданных 'backtrace' или 'verbose'. По умолчанию состояние многословия установлено в 'off', и состояние отображения трассировки стека установлено в 'on'.

Представлено до R2006a

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