2011-10-09 106 views
3

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

作为一种替代方法,有没有一种方法从MATLAB内部获取版本? '版本'我的意思是双字符串数字,例如“7.13”,而不是发布号码,例如“R2011b”。

谢谢! James

+3

为什么你就不能使用MATLAB的['version'(HTTP:// WWW .mathwor ks.de/help/techdoc/ref/version.html)命令从你的Java代码中执行? –

+2

你如何远程运行matlab?你不能重定向stdout和stderr并使用它们吗? – stardt

+0

@JonasHeidelberg因为我不想启动引擎,就像我在问题中所说的那样。 – gubby

回答

4

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

v = version 

获得数字版(其次是“R-发布”版本)的字符串,如下所示:

v = 
7.12.0.39132 (R2011a) 

然后,你应该能够解析字符串得到只是开始的数字部分。

见版本的MathWorks的文件在

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

以获取更多信息。

附加提示;如果您正在查找版本号以确保安装的MATLAB不超过(某些特定版本号),请查看VERLESSTHAN的文档,网址为http://www.mathworks.com/help/techdoc/ref/verlessthan.html它可以帮助您解决问题而不需要必须解析字符串你自己。

+0

够了,谢谢。可惜这个$$$软件的创建者并没有想到可以从CL标志中获得版本号,就像世界上其他所有软件一样...... – gubby

+1

@jgubby这是如何解决你获得版本的问题没有运行引擎?你必须已经运行它来执行'version'。在命令行上运行matlab时,您还可以从头文件获取版本号:'matlab -r quit | grep Version' – stardt

+0

@stardt我只是认为这是最接近正确的答案,因为除此之外似乎没有任何其他方式。这是一个狡猾的伎俩 - 除了R2011具有不同的格式,并且似乎不打印该字符串作为前缀的版本。可能太脆弱了,因为我会忘记我已经完成了100%的确定性... – gubby

1

我不知道是否在所有版本的下列作品,但尝试运行:

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是你的朋友)

+1

在Linux上的Matlab 2014和2015似乎不打印它,但如果发行版本是Matlab路径,它将以'matlab -n'结尾。 – Paul

相关问题