linux服务器下的matlab配置、如何运行matlab代码及其与C的混合编程

因为一直在本地用matlab跑数据,既然实验室给我一个就自己在使用的服务器,当然要充分的利用好了,就在在服务器上安装了matlab,并学习了一下如何在linux服务器下跑.c文件。

一.在linux下利用命令行安装matlab

主要参考的博客 https://blog.csdn.net/wzz18191171661/article/details/73253107,主要包括了以下几个步骤

1.下载“Crack”和“ISO”文件

下载地址如下所示:http://pan.baidu.com/s/1c2J5XE4,我是在本地下载的,然后在上传到服务器的,在服务器上下载实在是太慢了。

2.对映像文件进行挂载

1)cd  ~                    # 切换到home目录
2)sudo mkdir  matlab       # 创建一个文件夹,并命名为matlab,用于挂载
3)sudo mkdir Linux         # 创建一个文件夹,用来存放两个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权限运行。

后面激活的时候选择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  查看是否有Cal_Comp.mexa64文件,如果含有则编译成功,可以直接在.m文件中调用了。

我在编译中遇到的问题:1)不能够使用中文注释,所以我把注释全删了。2)遇到error: ‘for’ loop initial declarations are only allowed in C99 mode,是因为用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 /  回到根目录

  • 5
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值