【问题标题】:Is there a way to get the MATLAB version without starting the engine?有没有办法在不启动引擎的情况下获得 MATLAB 版本?
【发布时间】:2011-10-15 07:59:31
【问题描述】:

有没有办法在不启动引擎的情况下获得 MATLAB 的版本?启动时(在非 GUI 模式下),它会将版本打印为 stout - 但我是从 Java 远程使用它,因此输出不可用。

作为替代方案,有没有办法从 MATLAB 中获取版本?

“版本”是指双字符串编号,例如“7.13”,而不是发布编号,例如“R2011b”。

谢谢! 詹姆斯

【问题讨论】:

  • 为什么不能在 Java 代码中使用 MATLAB 的 version 命令?
  • 你是如何远程运行matlab的?你不能重定向stdout和stderr并使用它们吗?
  • @JonasHeidelberg 因为我不想启动引擎,正如我的问题中所说的那样。
  • @jgubby:我显然是在解决你的第二个问题,而不是第一个......
  • @JonasHeidelberg 哦,是的...哎呀。

标签: linux matlab


【解决方案1】:

正如乔纳斯所说,version 命令是你的朋友。使用

v = version

获取字符串中的数字版本(后跟“R-release”版本),如下:

v =
7.12.0.39132 (R2011a)

然后,您应该能够解析字符串以获取开头的数字部分。

请参阅 MathWorks 的 VERSION 文档,网址为

http://www.mathworks.com/help/techdoc/ref/version.html

了解更多信息。

附加提示;如果您正在寻找版本号以确保安装的 MATLAB 不早于(某些特定版本号),请查看 VERLESSTHAN 的文档,http://www.mathworks.com/help/techdoc/ref/verlessthan.html 它可能会帮助您解决您的问题没有 em> 必须自己解析字符串。

【讨论】:

  • 足够接近,谢谢。遗憾的是,这款 $$$ 软件的创建者并没有像世界上其他所有软件一样,从 CL 标志中获取版本号......
  • @jgubby 这如何解决您在不运行引擎的情况下获取版本的问题?您必须已经运行它才能执行version。在命令行上运行 matlab 时,您还可以从标题中获取版本号:matlab -r quit | grep Version
  • @stardt 我只是认为这是最接近正确答案的方法,因为似乎没有其他方法。这是一个狡猾的把戏——除了 R2011 有不同的格式,并且似乎没有以该字符串作为前缀打印版本。可能太脆弱了,因为我会忘记我已经 100% 确定地完成了那个黑客......
  • matlab -r quit -nojvm | grep "R201[0-9][ab]" 这似乎可以在 2014a 的 Linux 和 2017a 的 Mac OS X 上找到
【解决方案2】:

我不知道以下是否适用于所有版本,但请尝试运行:

matlab -help

这显示了命令行的使用,有趣的是,它最后打印了版本(MATLAB 没有在这个过程中启动):

matlab [-? ^| -h ^| -help]
       [-c licensefile]
       [-nosplash]
       [-nodesktop ^| -nojvm]

<...TRUNCATED...>

    -shieldload <list>   - Win32 only: (experimental) loads dlls identified in
                                   comma separated list


    Version: 7.13.0,564

您可以轻松地从该输出中获取版本号(grep 是您的朋友)

【讨论】:

  • Linux 上的Matlab 2014 和2015 似乎没有打印出来,但如果发布版本是Matlab 路径的一部分,它会以matlab -n 结尾。
猜你喜欢
  • 2021-06-17
  • 2011-07-03
  • 1970-01-01
  • 2010-12-22
  • 2019-11-09
  • 2023-01-27
  • 1970-01-01
  • 1970-01-01
  • 2013-08-23
相关资源
最近更新 更多