Running Mlint on an m-file from Python
조회 수: 3 (최근 30일)
이전 댓글 표시
We have code review on all our code in Gerrit, and can run automatic tests with Jenkins. What I would like to do is to add an automatic mlint check when new Matlab code is checked in. The Jenkins machines does not have Matlab installed.
My thought was to use the mlint.dll together with ctypes in Python, but then I realized that the mlint.dll has 1591 functions, and I'm unsure how to use it to use the mlint checks on a file.
I want a function similar to the mlintmex. Example:
>> str = mlintmex('perfTest.m')
str =
L 3 (C 1): The value assigned to variable 'A' might be unused.
L 4 (C 1): The value assigned to variable 'B' might be unused.
L 5 (C 1-3): Variable 'ops', apparently a structure, is changed but the value seems to be unused.
L 12 (C 9): This statement (and possibly following ones) cannot be reached.
L 53 (C 19-25): The function 'subFunc' might be unused.
L 53 (C 27-35): Input argument 'iteration' might be unused. If this is OK, consider replacing it by ~.
Please help me if you have any suggestions!
PS. I've thought about using mcc to build mlintmex into a binary, but it seems like a very awkward way around the problem.
댓글 수: 0
답변 (1개)
Nagarjuna Manchineni
2017년 6월 19일
편집: Nagarjuna Manchineni
2017년 6월 19일
It is possible to check the MATLAB code by using 'mlint' or 'checkcode' (recommended) function. You can use MATLAB engine for python/Java to call this function from python/Java. This needs to have MATLAB installed on the system.
See the following link for more information of MATLAB engine:
https://www.mathworks.com/help/matlab/matlab_external/get-started-with-matlab-engine-for-python.html
Also, you can directly call the MATLAB code by running the code from the command prompt or shell:
matlab -nodisplay -nodesktop -r "checkcode('<filename>')"
Also, note that it is not recommended to call 'mlint' from the mlint.dll as this dll has many dependencies internally with other dll's that are registered by installing MATLAB.
Also, this function is not available for compiling into a module/jar/application using MATLAB Compiler/SDK.
참고 항목
카테고리
Help Center 및 File Exchange에서 MATLAB Compiler에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!