遠程給Linux 服務器安裝 Matlab R2014b

最近想給公司的服務器安裝一個 Matlab 試一下, 因此寫這篇博客把主要過程記錄下來。

安裝

我是通過 xshell 遠程連接的服務器, 然後通過 xftp 新建了一個 Softwares 文件夾, 並通過 xftp 把 Matlab 的鏡像文件上傳到了服務器上,也就是在 Softwares 文件夾裏面,文件名是 R2014b_glnxa64_withcrack.iso. 之後就可以開始安裝了.

安裝過程可以參考:http://www.aichengxu.com/view/39100http://blog.csdn.net/johnnyconstantine/article/details/44943639 以及 http://www.ilovematlab.cn/thread-315642-1-1.html

我是先在 Softwares 目錄下新建了一個 matlab 的空文件夾,然後把鏡像掛載到這個目錄中, 之後在命令行中進入這個目錄。 然後先參考這個帖子:http://www.ilovematlab.cn/thread-315642-1-1.html 進行的安裝(畢竟這個帖子的安裝步驟看着最短),安裝好之後需要啓動和激活。

如果直接進行啓動的話,命令可參考:http://blog.csdn.net/johnnyconstantine/article/details/44943639,其實就是執行:

sudo /usr/local/MATLAB/R2014b/bin/matlab

但由於還沒有激活,因此會失敗,提示讓我們激活。激活的話,我是參考的這個:http://www.aichengxu.com/view/39100

激活之後執行啓動命令就成功了,但是爲了啓動的方便,我們需要添加環境變量,即打開 /etc/profile 文件,添加以下語句即可。

export PATH=$PATH:/usr/local/MATLAB/R2014b/bin

然後輸入matlab就可以啓動了。

基本使用

這裏直接上個圖
這裏寫圖片描述

值得注意的是,在哪個目錄啓動的Matlab,那麼啓動後的默認工作目錄就在哪裏(可以使用命令 pwd 查看)。

啓動後,直接輸入命令或者程序名就可以運行程序了
這裏寫圖片描述

如果想退出,直接輸入 quit 就可以了,其實跟普通平臺是一樣的。

腳本執行

如果想在命令行裏直接執行腳本的話,比如上面的簡單求和腳本,如下

n = 10000;
tic    % 程序計時開始

s = 0;
i = 0;
for i = 1:n
    s = s + i;
end

t = toc;    %程序計時結束
disp(['1到', num2str(n), '的累加和爲: ', num2str(s)]);
disp(['求解所用的時間爲', num2str(t), 's']);

quit()

我最後加了一個 quit() 命令,是讓程序執行完畢後直接退出 Matlab 環境,當然,也可以參考 http://qa.helplib.com/907066 ,也就是在最後面加上 exitcode = 0;. 運行時直接執行如下語句即可

matlab -r simplesum

其中 simplesum 是程序文件名,同樣不需要加 .m 後綴。

這裏寫圖片描述

腳本傳參

當然,我們還希望能夠像 Python 和 R 語言一樣, 能夠傳遞程序參數,這個可以參考 http://blog.sina.com.cn/s/blog_6595ee0601018omx.html ,第一種方式比較簡單易行,比如上面的求和程序改爲

% 簡單求和程序
% 需要傳遞參數 n 

tic    % 程序計時開始

s = 0;
i = 0;
for i = 1:n
    s = s + i;
end

t = toc;    %程序計時結束
disp(['1到', num2str(n), '的累加和爲: ', num2str(s)]);
disp(['求解所用的時間爲', num2str(t), 's']);

quit()

然後執行如下語句即可

matlab -r "n = 100; simplesum"

這裏寫圖片描述

後臺運行Matlab 腳本

如果程序需要執行的時間很長,我們希望利用服務器在後臺一直運行我們的程序,同Python 和 R 語言一樣,這隻要使用 nohup 命令就可以了,也可參考 http://blog.sina.com.cn/s/blog_67f37e760102uxs5.html。 比如我上面編寫的那個小程序,直接使用如下命令即可

nohup matlab -r simplesum &

如果有輸出,輸出結果會存到 nohup.out 文件中,比如上面的輸出就是
這裏寫圖片描述

可以看到,這與在後臺執行 Python 和 R 腳本是幾乎一模一樣的。

至於如何像 Python 和 R 那樣, 讓Matlab 程序執行結束後自動給我們發一個帶程序運行結果的郵件,有時間我會研究一下並更新。

用 Matlab 發送郵件

下面更新一下如何發送郵件,其實網上資料很多,以163郵箱爲例,我最終參考的模板如下

% 發送郵件

MyMailAddress = '*********@163.com'; % 發送郵件所用的郵箱的地址
MyPassword = '****************';  % 發送郵箱的密碼
setpref('Internet','E_mail',MyMailAddress);
setpref('Internet','SMTP_Server','smtp.163.com');  
setpref('Internet','SMTP_Username',MyMailAddress);
setpref('Internet','SMTP_Password',MyPassword);
props = java.lang.System.getProperties;
props.setProperty('mail.smtp.auth','true');
subject = '***程序執行狀態報告';  % 發送的郵件主題
content = 'Hello, 您的程序已經運行結束,運行結果可見附件';  % 發送的郵件內容

sendmail('******@qq.com',subject,content,{'line.pdf', 'Result.txt'}) % 設置需要接收的郵箱及主題、內容、附件等
% disp('Succesfull');
quit()

注意想要添加附件時,直接寫在 sendmail函數裏面就行了(可參考 http://cn.mathworks.com/help/matlab/import_export/sending-email.html ),默認文件目錄是與該程序在同一文件夾下的,這個就比較方便了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章