写在前面
众所周知MATLAB是一款强大的数学软件,便捷的数值计算能力以及对众多的算法的集成,在科研和工程中得到了广泛的应用。产品中使用了MATLAB程序,就必须要求安装MATLAB, 可是交付给用户使用来说不太适合,当然不仅仅是因为MATLAB是商业软件。
本文将介绍如何利用MCR(MATLAB Compiler Runtime)在未安装MATLAB的机器上运行MATLAB程序。
软件
计算机A:LINUX(deepin) + MATLAB(R2017b)
计算机B: LINUX (deepin) + MCR(v93)
其中MATLAB版本和MCR版本要匹配,MCR可以在Mathworks官网下载并免费使用。
编译matlab程序为独立应用
在计算机A上创建工作目录,在该目录中创建add.m、prod.m、sum_prod.m文件。
add.m
function [c] = add(a,b)c = a + b;
end
prod.m
function [c] = prod_a(a,b)c = a.*b;
end
sum_prod.m
a = [1,2,3,4,5];
B = [6,7,8,9,10];
sum = add(a,b);
prod = prod_a(a,b);
disp(sum);
disp(prod);
在MATLAB命令行执行如下命令:
>> deploytool
接下来选择编译器,
添加脚本文件
单选框选择 “Runtime downloaded from web”, 接下点击package, 出现如下对话框
选择编译结果的存放目录,选好后,编译开始执行,稍等片刻,输出结果。在sum_prod目下有三个子目录,选择将for_redistribution_files_only复制到计算机B上。
for_redistribution_files_only里面的文件如下:
安装MCR
根据计算机A上的的MATLAB版本到Mathworks官网下载对应版本的MCR,或者在计算机A上MATLAB命令行中执行如下命令:
>> mcrinstaller
显示mcrinstaller所在目录,直接复制到计算机上安装。
安装步骤:
- 解压MCRInstaller.zip
- 使用sudo ./install 安装,出现界面,默认即可(会提示设置环境变量)
- 设置环境变量
设置换环境变量
命令行输入:
sudo gedit /etc/profile
在文件最后添加,如下
在linux 命令行下输入:
source /etc/profile
使环境变量生效
注:切换到for_redistribution_files_only目录,查看readme.txt,其实关于MCR的相关配置,以及使用方式都在这里说明了。
运行编译好的独立程序
有两种运行方式(都是每次开启一个终端必须重新设置或者使环境变量生效), 前提切换到可执行文件所在目录。
- 第一种
- 之前已经设置过环境变量了(手动),现在只需要在终端中输入使之生效:
>> source /etc/profile
2. 在终端输入:
>> ./sum_prod
3. 运行结果如下
- 第二种(不需要手动设置环境变量)
- 具体的在Linux命令行输入如下:
./run_sum_prod.sh /usr/local/MATLAB/MATLAB_Runtime/v93/
2. 运行结果如下:
上述方法在实际使用时多少有些麻烦,如何在进入系统时,让系统自己将上述环境变量设置好呢?
进入系统自动设置环境变量
可以通过更改.bashrc文件实现在每次登陆系统时将环境变量自动设置好
/etc/bashrc
~/.bashrc