matlab部署应用路径等依赖

Posted

技术标签:

【中文标题】matlab部署应用路径等依赖【英文标题】:matlab deploy application paths and other dependencies 【发布时间】:2014-03-12 11:42:53 【问题描述】:

我有一个 matlab 代码,它在子文件夹中包含几个 .m 文件。当我调用 matlab 时,我正在使用以下函数。

addpath(genpath('myfolder'));

我的代码使用了一些其他库,例如 liblinear

我的问题是如何从我的代码创建一个 matlab 可执行文件。 我应该如何添加子文件夹和'addpath'? 如何在其中包含我的liblinear 函数(来自liblinear 库/代码)?

【问题讨论】:

您想创建可执行文件然后使用它们吗?或者您想使用“liblinear/function1.m”等文件中定义的函数?你明白可执行文件和函数是不一样的吧? 是的。我有一个函数调用“mainTask”,其中包括来自 liblinear 的一些其他函数。我想创建一个应该能够在其他机器上运行的可执行文件。我应该能够从命令行调用该 exe 并传递一些参数。 【参考方案1】:

Matlab 编译器会爬取您的文件并自行找出依赖关系。 因此,在大多数情况下,您不需要做任何事情。它还将添加mex 文件(在路径中),例如liblinear.mex

但是,在某些情况下,编译器无法确定要添加到已编译存档中的函数。

如果您使用eval 调用函数。 如果是对象的继承,需要添加父类(编译器bug)

您需要通过在您的 .m 文件中添加 pragma 来帮助他:

%#function MyFunc1
...
 eval('MyFunc1');
...

或者在compilation command中添加文件:

mcc .... -a MyFunc1.m 

【讨论】:

我想在此答案中添加的一件事是,如果您在 m 文件中添加路径,例如“addpath(genpath('myfolder'));”,则需要删除或创建可执行文件时对其进行注释。 更多信息 - admin.kuleuven.be/icts/onderzoek/wetsoft/software/matlab/pdf/…

以上是关于matlab部署应用路径等依赖的主要内容,如果未能解决你的问题,请参考以下文章

Docker部署SpringBoot应用

MATLAB 中 A = K * B 的类(具有依赖行为的非依赖属性)

如何部署 OSGi 应用程序和依赖项?

开发函数计算的正确姿势——轻松解决大依赖部署

gitlab+jenkins多项目,多依赖,继承等上下级项目关系的自动部署

Maven依赖管理的jar文件在打包后可部署文件中的位置?