How to clear "last warning"?
23 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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
0 comentarios
Respuesta aceptada
Más respuestas (0)
Ver también
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!