warning

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

Описание

пример

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

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

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

пример

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

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

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

пример

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

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

пример

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

warnStruct = warning(state,mode) возвращает структуру с identifier поле, содержащее mode и a state поле, содержащее текущее состояние mode. Если вы передаете структуру output, warnStruct, в warning function, вы задаете состояние 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.

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

[msgStr,warnId] = lastwarn;
warnStruct = warning('off',warnId);
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) в предупреждающем сообщении.

Пример: 'Input must be a character vector.'

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

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

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

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

Пример: 'MATLAB:singularMatrix'

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

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

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

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

Расширенные возможности

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