The goal of this set of coding standards that can be automatically checked is to help you write MATLAB code that is Coder-compatible.
The resulting code will be more suitable for code generation. For more information on MATLAB Coder, see the MathWorks website.
The coding standards described here can be checked using Code Checker for MATLAB by MonkeyProof Solutions.
They are configured in the predefined CoderCompatibility configurations set available with the tool. For instructions on how to check your code against coding standards, see the video below. The steps are also described below the video.
You can check your code for compliance with the guidelines described here as follows:
Install Code Checker for MATLAB. If you have not purchased the tool yet, you can do so here. Alternatively, you could request a free trial license there.
Open Code Checker for MATLAB in one of two ways:
Click the shortcut created at the top of the screen next to the documentation search bar: .
Run monkeyproof.cc4m.start() from the command window.
Select whether you want to check one or more files, all files in a folder, or all files in a MATLAB Project.
Select what files/folder/project to check.
Further customization is available, for example checking a folder including or excluding all subfolders.
Click the Run button at the bottom to start checking your code.
The guidelines that require human judgment or are simply not possible to check statically in MATLAB are not described here.
Prevent or suppress Code Analyzer messages shown in the MATLAB editor. When the messages cannot be prevented, suppress them on an individual basis and add the reason in the comments. The messages often indicate that improvements can be made to performance or stability of the code.
Do not compare floating-point values using == or ~=.
Do not compare floating-point values using == or ~=. Rounding errors due to algorithm design or machine precision can cause unexpected results. Use a tolerance instead. Generated code can produce floating-point results different from the MATLAB results.
Binary expressions should not make an assumption on the evaluation order of their operands.
Binary expressions should not make an assumption on the evaluation order of their operands. Generated code does not enforce the order of evaluation in expressions. It is therefore advised to define variables to enforce a specific evaluation order. For more info, see The Mathworks.