How to clear "last warning"?
25 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Benjamin
le 31 Mai 2012
Commenté : Walter Roberson
le 22 Juin 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 commentaires
Réponse acceptée
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Error Handling dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!