如何查找执行matlab脚本所需的工具箱(未安装)?

时间:2018-08-08 13:42:31

标签: matlab

嗨,我看到了应该允许查找工具箱依赖项的命令:

matlab.codetools.requiredFilesAndProducts

但是这样的命令也会列出已安装的工具箱,这不是我想要的。 有没有办法找出未安装但执行给定脚本所需的工具箱?

摘自文件

[fList, pList] = matlab.codetools.requiredFilesAndProducts(files)还返回运行文件指定的程序文件可能需要的MathWorks®产品列表。

  

如果在以下位置使用matlab.codetools.requiredFilesAndProducts函数   您收到的MATLAB代码,plist仅包含必需的   系统上安装的工具箱。在这种情况下,plist可以   不完整。

因此该命令将列出“必需”但已“安装”。

2 个答案:

答案 0 :(得分:1)

我无法测试它,因为我拥有所有可用的工具箱,但是有些喜欢:

[files,plist]= matlab.codetools.requiredFilesAndProducts('myfile');
toolboxRequiredAndMissing(plist);


function toolboxRequiredAndMissing(plist)
v=ver;
for ii=2:length(plist)
    found=false;
    for jj=1:length(v)
        found= strcmp(plist(ii).Name,v(jj).Name);
        if found
           break
        end
    end
    if (~found)
       disp(['Toolbox required and missing: ' plist(ii).Name]);
    end
end
end

这不考虑版本。

答案 1 :(得分:0)

情况似乎如此,这令人失望,因为我正试图找出一个新项目,而我却想知道整个工具箱依赖项是什么 prior < / em>去尝试安装它们。另一种方法是分段处理运行时故障,直到发现所有依赖项为止。

我发现的第一个失踪依存关系是...

To use 'downsample', the following product must be licensed, installed, and enabled:
  Signal Processing Toolbox

但是当我在文件上运行matlab.codetools.requiredFilesAndProducts时,pList仅显示对Matlab的依赖,这是没有用的。

pList = 

  struct with fields:

             Name: 'MATLAB'
          Version: '9.3'
    ProductNumber: 1
          Certain: 1

令人难以置信的是,运行时足够聪明,可以检测到所需的工具箱,但工具不够聪明,无法用相同的信息填充pList。

我认为解决方法是让同事在他们的本地设置(一个已知的工作环境)上运行此命令,并让他们将pList的结果传达给您。