How to clear "last warning"?

조회 수: 25 (최근 30일)
Benjamin
Benjamin 2012년 5월 31일
댓글: Walter Roberson 2018년 6월 22일
Hi!
SHORT QUESTION: I would like to clear the value "lastwarn" in a nice way so that I can create loops.
BACKGROUND: I want to count the number of warnings " Matrix is singular to working precision." that Matlab generates. I have read http://www.mathworks.com/matlabcentral/answers/32348-using-if-warning-as-a-conditional-statement But it does not say how to clear the last warning. Currently I am creating a new warning for this purpose (see the following code). Does anybody know a better solution?
vector_input=[0 1 0]';
vector_output= -100*ones(size(vector_input));
number_warnings=0;
for k=1:size(vector_input,1)
% warning on MATLAB:nearlySingularMatrix;
vector_output(k)=inv( vector_input(k));
[msglast, msgidlast] = lastwarn;
if strcmp(msgidlast,'MATLAB:singularMatrix')
number_warnings=number_warnings+1;
end
s = warning('off','all'); % turn display of all warnings off
warning('FineId','fine') % becomes the last warning
warning(s) % turn display of all warnings on
end

채택된 답변

Honglei Chen
Honglei Chen 2012년 5월 31일
warning('')
  댓글 수: 2
Benjamin
Benjamin 2012년 5월 31일
Thanks a lot Honglei Chen! I have just adapted your answer to the following
lastwarn('')
Walter Roberson
Walter Roberson 2018년 6월 22일
Turns out to require lastwarn('') now.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Error Handling에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by