我有一个MATLAB脚本,我必须编译以进行部署。我使用命令' mcc'但是,我还需要包含工具箱:PRTools(http://37steps.com/software/)和dd_tools(http://prlab.tudelft.nl/david-tax/dd_tools.html)。我试图使用命令addpath()包含它,它不起作用。我不知道如何包含这些工具箱。我试着用:
if ~isdeployed
addpath PRTools
addpath dd_tools
end
但它也不起作用。
答案 0 :(得分:4)
对于使用mcc
进行部署,您应该在编译应用程序之前添加路径到您的MATLAB路径(使用pathtool
或addpath
),而不是调用{ {1}}来自您的代码。
addpath
静态分析您的代码,以确定需要包含在可执行文件中的内容。此静态代码分析的一部分包括在代码中查找所有函数调用并查找相应的源文件。由于您在代码中从调用mcc
,因此MATLAB无法正确定位所有工具箱函数(因为它们在运行时动态添加到路径中并且代码被分析静态地)并将省略这些文件。
如果您首先将它们添加到MATLAB路径中,addpath
将能够静态分析您的代码,找到所有需要的工具箱功能,并将它们包含在生成的可执行文件中。
修改路径的更简洁方法是在调用mcc
时使用-I
option指定要包含的特定文件夹。
mcc
将新文件夹路径添加到包含文件夹列表中。每个-I
选项都会将一个文件夹添加到要搜索的路径列表的开头。例如,
-I
设置搜索路径,以便首先搜索
-I <directory1> -I <directory2>
的MATLAB文件,然后搜索directory1
。对于MATLAB路径不可用的独立编译,此选项很重要。
对于您的情况,这将是
directory2