由于仍然在本地用matlab跑数据,既然实验室给我一个就自己在使用的服务器,其实要充分的借助好了redhat linux,就在在服务器上安装了matlab,并学习了一下怎样在linux服务器下跑.c文件。
一.在linux下借助命令行安装matlab
主要参考的博客,主要包括了以下几个步骤
1.下载“Crack”和“ISO”文件
下载地址如下所示:,我是在本地下载的,之后在上传到服务器的,在服务器上下载实在是太慢了。
2.对映像文件进行挂载
1)cd~#切换到home目录
2)sudomkdirmatlab#创建一个文件夹linux社区,并命名为matlab,用于挂载
3)sudomkdirLinux#创建一个文件夹,拿来储存两个ISO文件
4)sudomount-tauto-oloopLinux/R2016b_glnxa64_dvd1.isomatlab/#挂载dvd1
5)sudo/home/user01/matlab/install#开始安装
6)当安装进度条执行到80%时,须要另外打开一个“终端”,开始挂载dvd2。
sudomount-tauto-oloopLinux/R2016b_glnxa64_dvd2.isomatlab/
7)sudoumountmatlab/#安装完成后取消挂载
8)sudorm-rmatlab/#删掉空文件夹
在安装过程中出现的图形界面里选择useaFileInstallationKey来安装;安装序号在“Crack”文件下的txt文件中。
3.激活MATLAB
1)将~/Crack/bin/中的文件复制到~/MATLAB/bin中
其实要先对“Crack”压缩包进行解压,到文件夹下使用tar-xzvf文件名即可解压
sudocp/home/user01/Linux/Crack/R2016b/bin/glnxa64/*/home/user01/MATBLE/bin/glnxa64
我是把matlab安装在自己的用户下的。
2)cd/home/user01/MATBLE/bin#切换到Matlab的安装路径中
3)sudo./matlab#以root权限运行。
前面激活的时侯选择ActivatemanuallywithouttheInternate,输入激活文件时,选择在“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-rorder
三.MATLAB与C的混和编程
1.检测gcc的版本
混和编程这一块主要用到了mexlinux 系统服务器,其实是须要有C的编译器gcc或则g++,由于这个版本的matlab只支持4.9.x版本的gcc,而我的服务器上面的gcc版本是5.4.0的,所以第一步我是须要把gcc降级到4.9.x
1)下载gcc/g++4.9.x版本
sudoapt-getinstall-ygcc-4.9
sudoapt-getinstall-yg++-4.9
2)链接gcc/g++来进行降级
cd/usr/bin
sudormgcc
sudoln-sgcc-4.9gcc
sudormg++
sudoln-sg++-4.9g++
gcc--version查看gcc的版本
2.步入到须要编译的.c文件下,并进行编译
cdcd/home/user01/data_sampling/
sudo/home/user01/MATBLE/bin/matlab-nodesktop-nosplash要使用sudo步入,不然权限不够未能编译
mexCal_Comp.c进行了编译
ls查看是否有Cal_Comp.mexa64文件,假如富含则编译成功,可以直接在.m文件中调用了。
我在编译中遇见的问题:1)不能否使用英文注释linux 系统服务器,所以我把注释全删了。2)遇见error:‘for’loopinitialdeclarationsareonlyallowedinC99mode,是由于用gcc编译的话不能否在for中定义变量如for(inti=0,i
完成了这三大步然后,大功告成,我的MATLAB程序才能在服务器上跑了。
Linux小白,顺便纪录一些Linux指令
sudovim文件:用于打开文件,步入后按i步入编辑模式,编辑完了以后按Esc步入通常模式,输入:wq来保存和退出文件,q!表示强制退出
sudorm-rffile_name直接删掉文件及其文件夹,无需寻问,使用时须要谨慎,由于linux没有回收站。
sudorm-i*.c逐一的删掉.c文件,但是进行寻问。
sudocp-rdata_sampling/*MATLAB/user_code把data_sampling下的所有文件都拷贝到user_code下。
sudomv/user/data/*/sample把data下边的文件联通到sample下,加入参数-r则表示把所有文件都联通,-i须要与用户交互,-f不须要寻问覆盖。
cd..回到上一层
cd~或则cd回到用户目录
cd/回到根目录