2016-08-02 127 views
1

有沒有辦法從linux命令行運行matlab腳本? 舉例來說,我有以下簡單的腳本「test.m」:matlab從命令行執行腳本linux line

x = [1,2,3]; 
y = [2;3;4]; 

prod = x*y 
disp(prod) 

所以,我想要的是能夠執行從Linux命令行腳本,而無需打開MATLAB GUI或MATLAB命令行。也就是說,我期望的是這樣的:

~$ matlab test.m 

我希望在linux命令行上看到該產品的結果。

我知道你可以做到這一點與Python例如,

~$ python test.py 

但不知道是否同樣可以使用MATLAB來實現。

+0

如果您已經安裝了Matlab的Linux版本,你只是https://uk.mathworks.com/help/matlab/ref/matlablinux.html請注意,如果您使用Wine或其他VE運行Windows版本,則無法使用此功能:( – GameOfThrows

回答

3

爲了運行腳本,你可以打開Matlab的(你可以阻止它的運行不使用-nodisplay-nodesktop標誌的GUI),然後使用run命令運行腳本,並使用exit終於接近MATLAB。

您可以用一條指令做這一切從終端:

matlab -nodisplay -nosplash -nodesktop -r "run('path/to/your/script.m');exit;" 

然而Matlab的運行腳本之前輸出歡迎消息到控制檯。爲了擺脫歡迎消息的使用tail -n +11

因此,最終的指令將剛剛跳過第11行(10取決於您的MATLAB版本):

matlab -nodisplay -nosplash -nodesktop -r "run('path/to/your/script.m');exit;" | tail -n +11 
+1

:D您也可以在那裏添加nojvm,以保持內存消耗低,但失去了Java句柄。 – GameOfThrows

+0

感謝Sembei,工作! – user3578925

+0

@Sembei,最後一個問題! 我可以將「script.m」fi把它變成一個可執行文件,比如chmod + x script.m並且實現和上面一樣的功能?我嘗試了shebang行:#!/ usr/bin/env matlab 但它沒有工作。 – user3578925