linux服务器下的matlab配置、如何运⾏matlab代码及其与C的
混合编程
因为⼀直在本地⽤跑数据,既然实验室给我⼀个就⾃⼰在使⽤的服务器,当然要充分的利⽤好了,就在在服务器上安装了matlab,并学习了⼀下如何在linux服务器下跑.c⽂件。
⼀.在linux下利⽤命令⾏安装matlab
1.下载“Crack”和“ISO”⽂件
2.对映像⽂件进⾏挂载
1)cd ~ # 切换到home⽬录
2)sudo mkdir matlab # 创建⼀个⽂件夹,并命名为matlab,⽤于挂载
3)sudo mkdir # 创建⼀个⽂件夹,⽤来存放两个ISO⽂件
4)sudo mount -t auto -o loop Linux/R2016b_glnxa64_dvd1.iso matlab/ # 挂载dvd1
5)sudo /home/user01/matlab/install # 开始安装
6)当安装进度条执⾏到80%时,需要另外打开⼀个“终端”,开始挂载dvd2。
sudo mount -t auto -o loop Linux/R2016b_glnxa64_dvd2.iso matlab/
7)sudo umount matlab/ # 安装完成后取消挂载
8)sudo rm -r matlab/ # 删除空⽂件夹
在安装过程中出现的图形界⾯⾥选择use a File Installation Key来安装;安装序号在“Crack”⽂件下的txt⽂件中。
3.激活MATLAB
1)将~/Crack/bin/中的⽂件复制到~/MATLAB/bin中
当然要先对“Crack”压缩包进⾏解压,到⽂件夹下使⽤ tar -xzvf ⽂件名 即可解压
sudo cp /home/user01/Linux/Crack/R2016b/bin/glnxa64/* /home/user01/MATBLE/bin/glnxa64
我是把matlab安装在⾃⼰的⽤户下的。
2)cd /home/user01/MATBLE/bin # 切换到Matlab的安装路径中
3)sudo ./matlab # 以root权限运⾏。
linux使用vim编辑文件后⾯激活的时候选择Activate manually without the Internate,输⼊激活⽂件时,选择在“Crack”⽂件中的license_standalone.lic⽂件就OK了。
⼆.在linux下运⾏matlab程序
1.打开matlab终端
1)cd /home/user01/data_sampling/ 进⼊到需要运⾏的.m⽂件夹下
2) /home/user01/MATBLE/bin/matlab -nodesktop -nosplash 加上完整的MATLAB安装路径,不然⽆法运⾏,后⾯的两个参数是告诉matlab步启动图形界⾯运⾏,只是打开终端。
3)ls 可以看到当前⽬录下的所有⽂件。
4)order; 这样就运⾏了order.m⽂件了。
2.或者还有⼀种更加直接的⽅法,直接在linux终端运⾏.m⽂件:
/home/user01/MATBLE/bin/matlab -nodesktop -nosplash -r order
三.MATLAB与C的混合编程
1.检查gcc的版本
混合编程这⼀块主要⽤到了mex,当然是需要有C的编译器gcc或者g++,因为这个版本的matlab只⽀持4.9.x版本的gcc,⽽我的服务器⾥⾯的gcc版本是5.4.0的,所以第⼀步我是需要把gcc降级到4.9.x
1)下载gcc/g++ 4.9.x版本
sudo apt-get install -y gcc-4.9
sudo apt-get install -y g++-4.9
2)链接gcc/g++来进⾏降级
cd /usr/bin
sudo rm gcc
sudo ln -s gcc-4.9 gcc
sudo rm g++
sudo ln -s g++-4.9 g++
gcc --version 查看gcc的版本
2.进⼊到需要编译的.c⽂件下,并进⾏编译
cd cd /home/user01/data_sampling/
sudo /home/user01/MATBLE/bin/matlab -nodesktop -nosplash 要使⽤sudo进⼊,不然权限不够⽆法编译
mex Cal_Comp.c 进⾏了编译
ls 查看是否有a64⽂件,如果含有则编译成功,可以直接在.m⽂件中调⽤了。
我在编译中遇到的问题:1)不能够使⽤中⽂注释,所以我把注释全删了。2)遇到,是因为⽤gcc编译的话不能够在for中定义变量如
for(int i = 0, i<20,i++),需要改成int i; for(i=0,i<20,i++)。
完成了这三⼤步之后,⼤功告成,我的MATLAB程序能够在服务器上跑了。
Linux⼩⽩,顺便纪录⼀些Linux指令
sudo vim ⽂件 : ⽤于打开⽂件,进⼊后按 i进⼊编辑模式,编辑完了之后按Esc进⼊⼀般模式,输⼊:wq来保存和退出⽂件,q!表⽰强制退出
sudo rm -rf file_name 直接删除⽂件及其⽂件夹,⽆需询问,使⽤时需要慎重,因为linux没有回收站。
sudo rm -i *.c 逐⼀的删除.c⽂件,并且进⾏询问。
sudo cp -r data_sampling/* MATLAB/user_code 把data_sampling 下的所有⽂件都拷贝到user_code下。
sudo mv /user/data/* /sample 把data下⾯的⽂件移动到sample下,加⼊参数-r则表⽰把所有⽂件都移动,-i需要与⽤户交互,-f不需要询问覆盖。
cd ..回到上⼀层
cd ~ 或者 cd 回到⽤户⽬录
cd / 回到根⽬录
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论