如何将命令行参数传递给在Linux/Unix上运行的独立MATLAB可执行文件?

Pil*_*007 26 matlab command-line-arguments matlab-deployment matlab-compiler

如何将命令行参数传递给在Linux/UNIX上运行的独立MATLAB可执行文件?

我需要将我的MATLAB脚本编译为一个独立的文件,可以在没有MATLAB的机器上运行.它需要能够以类似于C的方式工作argv[],您可以在其中执行以下操作:

命令行:

myfile argument1.txt argument2.txt
Run Code Online (Sandbox Code Playgroud)

其中参数1和2是输入和输出文件.

确切的语法并不重要,但它应该像argv[].什么是可以做到这一点的功能?


我的意思是我的计算机上有MATLAB,但是我需要制作一个可以在Unix系统上运行的独立可执行文件,这些计算机上没有MATLAB(它是一个集群,在一个节点上只有MATLAB).我需要找到一种方法来制作varargin函数,而无需在运行该程序的计算机上安装MATLAB.如果我可以告诉MATLAB将MATLAB库放在每个可执行文件中,那就没关系,只要它是一个完整的独立包.

Ric*_*rri 24

MATLAB网站有一个已 完成的示例,其中包含有关如何编译简单应用程序以及如何在另一台计算机上部署它的说明.实质上,您需要将MATLAB Compiler Runtime与您的应用程序一起安装; 运行时的安装程序应该已经存在于MATLAB编译器安装中.

要将命令行参数传递给MATLAB可执行文件,可以在可执行文件中定义单个MATLAB函数:函数的参数取自命令行参数(第一个命令行参数是第一个参数,依此类推).

例如,echo.m使用以下内容创建文件:

function exitcode = echo(a, b)

display(a);
display(b);

exitcode = 0;
Run Code Online (Sandbox Code Playgroud)

然后,您可以编译此文件并使用它运行它echo 1 2 3,它将打印a=1 b=2.

请注意,当从命令行获取参数时,它们将作为字符串传递给函数,因此您需要使用该str2num函数将它们转换为数字.例如:

function rc = display_product(a, b)

a = str2num(a);
b = str2num(b);

display(a*b);

rc = 0;
Run Code Online (Sandbox Code Playgroud)


Hig*_*ark 0

如果没有 MATLAB,您就无法真正在计算机上运行 MATLAB。您可以安装免费安装的 MCR(MATLAB 组件运行时)并运行 MATLAB 程序。要构建“独立”可执行文件,您还需要 MATLAB 编译器。

一旦你拥有了这一切。MATLAB 具有您所需的所有功能,可以按照您的要求处理命令行参数。