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
Best Answer