【问题标题】:How to find what toolboxes (not installed) are necessaries to execute a matlab script?如何找到执行 matlab 脚本所需的工具箱(未安装)?
【发布时间】:2018-09-19 03:22:29
【问题描述】:

您好,我看到这个命令应该允许查找工具箱依赖项:

matlab.codetools.requiredFilesAndProducts

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

来自文档

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

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

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

【问题讨论】:

    标签: matlab


    【解决方案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
    

    这不考虑版本。

    【讨论】:

    • 不是 100% 确定它在工作,它被列为缺少依赖项 MATLAB Distributed Computing Server,但是当我运行代码时,我遇到了关于 Curve Fitting 工具箱的错误。
    • 您可能希望删除plist 中的行,其中plist.Certain == 0
    • @Wolfie 只是“可能”,据我了解,即使 MATLAB 不确定,它们可能仍然是必需的
    • @user8469759 它对我有用。如果我删除特定的 v 工具箱信息,此代码会根据需要输出这些信息。什么“上市”?你得到什么错误?所有这些都是新信息
    • 脚本中没有错误,当我运行它时,我得到输出:Toolbox required and missing: MATLAB Distributed Computing Server,但是当我运行从 git 存储库获得的脚本时,由于缺少工具箱而出现错误提到。
    【解决方案2】:

    似乎是这样,这是一个巨大的失望,因为我正处于试图找出一个新项目的情况下,我正在研究全套工具箱依赖项是什么之前 去尝试安装它们。另一种方法是分段处理运行时故障,直到发现所有依赖项。

    我发现的第一个缺失的依赖项是...

    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 的结果传达给您。

    【讨论】:

      猜你喜欢
      • 2011-03-24
      • 2014-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多