我要实现的功能需要知道当前版本的 MATLAB 是否至少与 R2014a
一样新。
是否有稳健、受支持的方式来执行此检查?
(关于“稳健、受支持”,我的意思是说我对脆弱的技巧不感兴趣,例如解析版本返回的字符串等)
顺便说一句,在这种情况下,我想要进行此检查的原因是要知道我可以使用函数 matlab.lang.makeUniqueStrings
。如果有一种稳健、受支持的方法来检查此函数的可用性,我会使用它而不是测试当前的 MATLAB 是否足够新。不幸的是,似乎没有这样的检查:exist
对我能想到的这个函数名称的每个变体都返回 false。同样,我可以想到模仿适当测试的脆弱 hack(例如 which('matlab.lang.makeUniqueStrings')
),但它们并不比我上面提到的版本测试 hack 好多少.
我发现的最佳解决方案是在 try-catch
block 中使用 matlab.lang.makeUniqueStrings
运行命令。这仍然是一个脆弱的 hack,因为 MATLAB
没有提供强大的内置方法来捕获特定异常!
IOW,一切都是关于选择最不糟糕的 hack。测试当前版本是否足够新(即使这个测试是一个脆弱的 hack)至少具有通用性足以坚持某些功能的优点,并且至少包含脆弱的 hacky 代码的扩散。
最佳答案
我会使用 verLessThan
功能:
verLessThan('matlab', '8.3')
如果您使用的当前版本早于 8.3 (R2014a),则返回真 (1),否则返回假 (0)。无需字符串解析。
然后你可以像这样使用它:
if ~verLessThan('matlab', '8.3')
% Run code using matlab.lang.makeUniqueStrings
end
关于matlab - 如何测试最新版本的 MATLAB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22662692/