MATLAB Answers

per isakson

Does checkcode return the status of the "Message indicator box", i.e. red/orange/green ?

Asked by per isakson
on 27 Nov 2012

I search for an automatic way to find out if a file has a syntax error. That is, to find the same piece of information that the Code Analyzer indicates with red in the "Message indicator box" of the editor.

I took for granted that checkcode provides the information corresponding to the colors of the "Message indicator box".

Doc (R2012a) says:

    [...] checkcode('filename') displays messages, sometimes referred to as 
    Code Analyzer messages, [...]

thus, I tried

    info = checkcode( filespec );


    info = checkcode( filespec, '-id' );

However, I cannot find the piece of information I need. isempty(info) equal to true indicates green, but, I cannot figure out how to find an indicator for red. (Not empty indicates red or orange.)

One way would be to have a list of the ID, which stands for errors.

I did check


Sounds like he's trying to make his own mlint functionality. Not sure why since this functionality already exists in MATLAB.

It sounds like he'd like to be able to test whether a file has syntax errors before running it - sounds fair to me...

Yes, I want to check for syntax errors as the first step when running a test suite.


No products are associated with this question.

2 Answers

Answer by Yair Altman
on 1 Dec 2012
Edited by Yair Altman
on 8 Dec 2012
 Accepted answer

I must admit that I have it on my articles TODO list for quite some time...

Here's something to get you started: (continue reading down the thread)

Related: (oddly enough, you were part of that thread, Per...)

Also related:

In summary, you could simply do:

errMsgs = mlint('-m2',srcFileNames); % m2 = errors only
m1Msgs  = mlint('-m1',srcFileNames); % m1 = errors and severe warnings only
allMsgs = mlint('-m0',srcFileNames); % m0 = all errors and warnings

Note that mlint returns the data in struct format, while mlintmex returns a string that you must parse.

Yair Altman


Answer by Sean de Wolski
on 30 Nov 2012

It looks like you could use try/catch and do an isempty check on the ME.stack:

X = [pi    
for ii = 1:3


catch ME;

Now to test:



Join the 15-year community celebration.

Play games and win prizes!

Learn more
Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!