如何使MATLAB在打包工具箱时识别依赖关系

bksxznpy  于 2022-11-24  发布在  Matlab
关注(0)|答案(1)|浏览(217)

我在一个文件夹中定义了一些自定义脚本。这些脚本使用了在工具箱(如通信工具箱和DSP系统工具箱)中定义的函数和类。
当我尝试将文件夹打包到工具箱中时,依赖关系分析器无法识别脚本所依赖的任何工具箱。如何纠正此问题?
例如,如果我在matlab脚本和matlab函数文件中只有以下几行,这两行都在文件夹中,那么在打包文件夹时,MATLAB是否不应该将Parallel Computing Toolbox标识为必需的插件?

gcp('nocreate')
delete(gcp('nocreate'));
parpool("local", 1);

我试图看看MATLAB是否能够在我的脚本上使用 RequiredFilesAndProducts 来判断依赖关系,但即使这样也无法列出所需的工具箱。
我还看了下面的MATLAB页面-

  1. https://www.mathworks.com/help/matlab/matlab_prog/identify-dependencies.html:我所包含的代码的依赖关系报告正确地标识了正在使用的Parallel Computing工具箱。
  2. https://www.mathworks.com/help/matlab/ref/matlab.codetools.requiredfilesandproducts.html这不会列出 * 任何 * 工具箱作为代码的依赖项。
iqjalb3h

iqjalb3h1#

我认为如果被分析的代码不在MATLAB的路径上,就会发生这种情况。我把你指定的行放在一个脚本中,当不在路径上时,requiredFilesAndProducts只列出MATLAB;当脚本位于路径上时,我会看到以下内容:

[a,b] = matlab.codetools.requiredFilesAndProducts('pkg/usesPctScript.m');
disp(struct2table(b))
                 Name                 Version     ProductNumber    Certain
    ______________________________    ________    _____________    _______

    {'MATLAB'                    }    {'9.12'}           1          true  
    {'Parallel Computing Toolbox'}    {'7.6' }          80          false 
    {'MATLAB Parallel Server'    }    {'7.6' }          94          false 
    {'Polyspace Bug Finder'      }    {'3.6' }         164          false

根据the documentation,在“Package Toolbox”应用程序的“Toolbox Portability”(工具箱可移植性)部分,它指出:
产品-工具箱所需的MathWorks®产品列表。手动创建此列表。

相关问题