How to clear "last warning"?

23 visualizaciones (últimos 30 días)
Benjamin
Benjamin el 31 de Mayo de 2012
Comentada: Walter Roberson el 22 de Jun. de 2018
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

Respuesta aceptada

Honglei Chen
Honglei Chen el 31 de Mayo de 2012
warning('')
  2 comentarios
Benjamin
Benjamin el 31 de Mayo de 2012
Thanks a lot Honglei Chen! I have just adapted your answer to the following
lastwarn('')
Walter Roberson
Walter Roberson el 22 de Jun. de 2018
Turns out to require lastwarn('') now.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Error Handling en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by