我想确定以八度运行特定功能所需的所有功能。我需要这个来部署用Octave编写的应用程序。 Matlab提供了一些工具来分析函数的依赖关系,但我找不到与Octave类似的东西。
按照matlab的建议尝试inmem不会产生预期的结果:
> inmem
warning: the 'inmem' function is not yet implemented in Octave
此问题是否还有其他解决方案?
答案 0 :(得分:1)
首先,让我指出,根据您的描述,您所追求的 matlab 工具不是inmem
,而是deprpt
。
第二,虽然octave对此没有内置工具,但您可以通过多种方法来执行此操作。我还没有亲自尝试过这些,所以,ymmv。
1)在使用探查器时运行功能,然后检查运行过程中使用的功能。如八度音阶档案中所建议:https://lists.gnu.org/archive/html/help-octave/2015-10/msg00135.html
2)github上有一些外部工具试图这样做,例如:
3)如果我必须自己进攻,我将按照以下方式解决问题:
isvarname
之类的二进制检查来进一步过滤无用的令牌,然后再进行下一步。)如果这样做的上下文是您试图检查matlab脚本是否可以在八度音阶上工作,那么一个复杂的情况就是,在matlab代码中通常不存在需要八度音阶的软件包。再说一次,如果这是您的目标,那么您可能应该直接使用matlab的deprpt。
祝你好运。
PS。我可能会补充说,以上内容是用于创建通用工具等。就识别您自己的自己代码中的依赖而言,良好的软件工程实践在提供可维护代码和轻松解决您的依赖问题方面大有帮助用户。例如:-清楚地标识所需的软件包(与matlab不同,octave总是通过要求将这些软件包可见地加载到代码中来完成)–类似地,对于自定义依赖项,请考虑将它们包装并提供为软件包/名称空间,而不是分散的文件-如果无法打包依赖,则可以在文件中创建测试/检查,如果缺少必要的文件,则抛出错误,或者至少在文件本身的注释中提及此类依赖,等等。
答案 1 :(得分:0)