2011-10-09 104 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

相關問題