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

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

addpath(genpath('myfolder'));

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

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

【问题讨论】:

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

标签: matlab matlab-deployment matlab-compiler


【解决方案1】:

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

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

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

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

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

或者在compilation command中添加文件:

mcc .... -a MyFunc1.m 

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2022-10-16
  • 2019-06-03
  • 1970-01-01
  • 2012-06-11
  • 2022-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多