do specific work after a specific warning

Hello everyone.
I want to write a command with the following task:
if a specific warning is happend, do a specific work.
For example:
class 0 = [1, 2, 2, 1, 4, 5, 4, 4,];
warning('off');
class = kmeans(X,10);
if (Warning: Failed to converge in 100 iterations during replicate 10)
class = class0;
end
How to write the "if-condition" above in the command line?

답변 (2개)

Walter Roberson
Walter Roberson 2022년 7월 4일

1 개 추천

Use lastwarn, especially the two-output version that lets you get the message id.
Trick of the trade, though: immediately before the command to be tracked, use
warning('')
otherwise lastwarn might refer to a warning from before the kmeans call.
Image Analyst
Image Analyst 2022년 7월 4일

1 개 추천

Maybe try this:
% Clear the last warning.
lastwarn('Success');
class = kmeans(X,10);
% See if there was a warning.
[warningMessageString, warningMessageID] = lastwarn;
if contains(warningMessageString, 'Failed to converge')
% Alert user
uiwait(warndlg(warningMessageString));
% Do anything else you want to do, like exit or whatever.
end

카테고리

도움말 센터File Exchange에서 Error Handling에 대해 자세히 알아보기

질문:

2022년 7월 4일

댓글:

2022년 7월 5일

Community Treasure Hunt

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

Start Hunting!

Translated by