您的位置:首页 > 运维架构 > Linux

远程给Linux 服务器安装 Matlab R2014b

2016-03-17 17:19 585 查看
最近想给公司的服务器安装一个 Matlab 试一下, 因此写这篇博客把主要过程记录下来。

安装

我是通过 xshell 远程连接的服务器, 然后通过 xftp 新建了一个 Softwares 文件夹, 并通过 xftp 把 Matlab 的镜像文件上传到了服务器上,也就是在 Softwares 文件夹里面,文件名是 R2014b_glnxa64_withcrack.iso. 之后就可以开始安装了.

安装过程可以参考:http://www.aichengxu.com/view/39100/article/10527595.html 以及 http://www.ilovematlab.cn/thread-315642-1-1.html

我是先在 Softwares 目录下新建了一个 matlab 的空文件夹,然后把镜像挂载到这个目录中, 之后在命令行中进入这个目录。 然后先参考这个帖子:http://www.ilovematlab.cn/thread-315642-1-1.html 进行的安装(毕竟这个帖子的安装步骤看着最短),安装好之后需要启动和激活。

如果直接进行启动的话,命令可参考:/article/10527595.html,其实就是执行:

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 ),默认文件目录是与该程序在同一文件夹下的,这个就比较方便了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: