How to catch warnings?

조회 수: 207 (최근 30일)
Mr M.
Mr M. 2018년 9월 19일
답변: Geoff May 2020년 7월 25일
I want to catch Warning: Matrix is close to singular or badly scaled, during a matrix division A/B.

채택된 답변

Adam
Adam 2018년 9월 19일
may help with this. Credit to Guillaume from this answer for the link.

추가 답변 (1개)

Geoff May
Geoff May 2020년 7월 25일
You could use the lastwarn function to reset, then check the last warning. Granted this might not work if the warning you are interested in gets overwritten by a subsequent warning that you would rather discard.
% reset the lastwarn message and id
lastwarn('', '');
% call the function that might throw a warning
diceyFunction();
% now if a warning was raised, warnMsg and warnId will not be empty.
[warnMsg, warnId] = lastwarn();
% you can check the warning message or id, or just throw the warning as an error if desired
if(isempty(warnId))
noProblem();
else
error(warnMsg, warnId);
end

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by