用于检查与Matlab版本兼容性的工具?

9

我有几个脚本(m文件),我们的客户使用不同版本的Matlab。是否有工具可以检查每个脚本与特定Matlab版本的兼容性?


+1 很棒的问题,如果 MathWorks 开发这样的工具就太好了。也许你应该提出一个功能请求 - Amro
很遗憾,没有这样的工具。我认为随着每个Matlab版本引入的不兼容更改的洪流,维护这样的工具将是一场噩梦。如果他们在文档中介绍/更改/弃用/删除某些功能时放置版本号,那已经足够帮助了,但他们并不关心(我曾尝试通过他们的支持请求该功能,但他们并未理会。也许如果有更多人请求...) - Elmar Zander
3个回答

4

您可以使用 checkcode 函数来实现您想要的功能。另外,您还可以使用 versionverLessThan 等函数编写脚本和函数,以便检查它们正在运行的版本并采取适当的措施。


3

仅适用于MATLAB R2017b及以上版本:

是的,我们有一个工具可以创建当前工作文件夹和子文件夹的codeCompatibilityReport。此功能在MATLAB R2017b中引入。代码兼容性报告将在MATLAB Web浏览器中打开。升级到新版本的MATLAB后,您可以使用此报告来识别现有代码中可能存在的兼容性问题。

在MATLAB中导航到您希望运行代码兼容性报告的M文件所在的目录。然后,执行以下命令:

>> codeCompatibilityReport

代码兼容性报告包含有助于升级到新版MATLAB的代码信息。它包含以下几个部分。 不兼容和语法错误 —— 表格中详细说明了分析代码中的语法错误和不兼容问题。例如,“在此上下文中不允许使用 ~ 忽略值,或者‘wavfinfo’已被移除,请改用‘AUDIOINFO’。” 警告和其他建议 —— 表格中详细说明了警告和其他改进代码的机会。例如,“不推荐使用DISPLAY进行程序化操作。请改用DISP或FPRINTF。” 执行的检查 —— 详细说明了指定代码执行的检查。 文件 —— MATLAB分析的代码兼容性文件列表。
这是包含更多信息的MATLAB Answers帖子的链接: https://www.mathworks.com/matlabcentral/answers/364764-is-there-a-tool-to-check-for-compatibility-between-different-matlab-versions

0
根据您要迁移到的Matlab版本,有一个名为“升级顾问”的功能可以检查此类问题(它与Simulink模型顾问非常相似)。

你能描述一下如何使用它吗?我用的是2011b版本,找不到这个函数。 - bdecaf
非常抱歉,我似乎有点老年痴呆了。升级顾问仅在最新版本的Matlab中可用(尽管模型顾问仍然可以执行大部分您需要的检查)。@Mark下面的解决方案应该正是您需要的。 - BigA
@BigA:我还不太清楚,你是在说 MATLAB(R2012b)的预发布测试版吗? - Amro
你可能指的是mlint输出的提示,比如“不要再使用那个功能了”,“这个函数将在下一个版本中被弃用”等等,但如果你想保持与不同版本的matlab向后兼容,这并没有真正帮助到你。 - Elmar Zander

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接