linux服务器下的matlab配置、如何运行matlab代码及其与C的混合编程 |
您所在的位置:网站首页 › linux服务器如何运行渲染软件 › 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 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |