购置服务器后,应安装相应的科学计算软件。对于有显示器的服务器,用户可以方便的使用图形界面操作软件。而对于常见的远程登录方式,或是无显示设备的服务器而言,一般采用bash命令操作软件。这里以常用的Matlab为例,简单介绍在linux下如何用bash运行Matlab程序。
第一步:将程序文件上传至服务器
上传至服务器有两种方法,一是用U盘或其他物理介质拷贝至服务器中,该方法较为简单,只需要完成简单的挂载操作即可,此处不再赘述。另一种则是利用ssh上传文件,为方便起见,推荐使用WinSCP进行文件的上传和下载。需要注意的是,若无法顺利登录服务器,请检查软件高级选项中的“隧道”选项卡中是否勾选并正确配置了ssh信息。
第二步:切换工作目录
该步骤仅需要运行cd命令切换至工作目录即可,注意该工作目录指的是程序所在目录。
第三步:启动Matlab,运行程序
在bash窗口下,Matlab不能显示图形界面,此时需要使用启动选项启动Matlab并执行程序。以运行当前目录下的example.m为例
输入
1matlab -nodesktop -nosplash -r example
或者
1matlab -nojvm -nosplash -r example
亦或是
1matlab -nodisplay -r example
均可执行程序,并在bash窗口中观察到程序输出(含打印输出语句),该窗口与Matlab内建立命令行相同。
值得注意的是,如果使用参数
1-nodisplay -r
运行程序,当程序中有figure()命令时会出错,可以使用如下语句限制图形的显示:
1figure('visible','off');
并使用如下命令将图形输出到文件:
1print('-deps','example.eps');
或者
1hgsave('example.fig');
附录 Linux下有关Matlab启动项的说明
语法
1
2matlab
matlab option1 ... optionN
matlab option1 ... optionN 指使用指定的启动选项启动 MATLAB。
启动选项
选项
结果
-nodesktop
运行JVM软件而不打开Matlab桌面,但help界面、preferences界面等仍可通过cmdline调出。此时Matlab不会在cmd history记录本次执行的命令
-nodisplay
启动JVM软件而不启动Matlab桌面,它会覆盖DISPLAY环境变量,即JVM启动但不能显示
-nojvm
启动Matlab而不启动JVM软件,不能运行需要Java软件的功能(例如桌面工具和图形显示)
-nosplash
不显示启动时的log画面
-r statement
执行指定的statement,指定为程序源码或指定为脚本或函数的名称。若statement为代码,需使用双引号将字符串引起。若statement为函数或脚本的名称,请勿指定文件扩展名,也不要使用引号。
-logfile filename
将命令行窗口输出(包括错误报告)复制到指定为字符串的filename中。