Octave信号包安装

时间:2017-04-16 05:10:31

标签: matlab package install octave

我在Ubuntu 16.04上,目前使用Octave作为Matlab的互惠信号处理。一切都很好,直到我需要使用medfilt1函数来获得中位数。 Octave生成了一个错误报告,指出我的系统上没有安装信号包。浏览了一下后,我找到了命令

 sudo apt-get install octave-signal

我运行了这个命令,它显示了所有下载和安装完美的内容。但是,如果我再次运行八度音阶脚本,则错误仍然存​​在:

  

警告:'medfilt1'函数属于Octave Forge的信号包   您已安装但未加载。要加载包,请运行'pkg   从Octave提示符加载信号。

     

请阅读http://www.octave.org/missing.html以了解具体方法   贡献缺少功能。   警告:来自       第524行第5行未实现       filter-practice.m在第8行第2列   错误:'medfilt1'在第8行第3列附近未定义   错误:来自       filter-practice.m在第8行第2列

分析我试图运行的错误消息pkg load signal,但终端告诉我没有这样的命令。

  找不到

命令:pkg

如何在我的系统上安装信号包?

2 个答案:

答案 0 :(得分:8)

我会在这里为未来的用户提供一个答案,即使该帖子已经接受了答案,因为它缺少所有相关的详细信息(如果您只对如何通过apt安装软件包感兴趣 - 要显示你的八度音阶,请看结尾处的位。)

要安装Octaveforge上列出的其中一个软件包(有关可用软件包的完整列表,请参阅here),您可以从相应的页面下载特​​定软件包的.tar.gz文件(例如signal包的here),然后转到该文件夹​​并在 octave 终端发出以下命令:

pkg install signal

或者更方便的是,您可以通过附加-forge选项,让octave直接从Octaveforge下载包并安装它:

pkg install signal -forge

如果您不喜欢默认位置(通常为~/octave),在安装之前使用pkg prefix命令,您可能还需要指定 where 来安装此类软件包包(详见文档)。

安装软件包后,您可以使用pkg list命令查询已安装的软件包列表; 'loaded'软件包带有星号,例如我的电脑上。

octave:1> pkg list
Package Name         | Version | Installation directory
---------------------+---------+-----------------------
fuzzy-logic-toolkit  |   0.4.5 | /media/tasos/Gandalf/opt/octave-4.2.1/lib/fuzzy-logic-toolkit-0.4.5
              image *|   2.6.1 | /media/tasos/Gandalf/opt/octave-4.2.1/lib/image-2.6.1
                 io  |   2.4.7 | /media/tasos/Gandalf/opt/octave-4.2.1/lib/io-2.4.7
         statistics  |   1.3.0 | /media/tasos/Gandalf/opt/octave-4.2.1/lib/statistics-1.3.0

加载包,请使用pkg load命令;任何'依赖'都将自动加载,例如:

octave:2> pkg load statistics
octave:3> pkg list
Package Name         | Version | Installation directory
---------------------+---------+-----------------------
fuzzy-logic-toolkit  |   0.4.5 | /media/tasos/Gandalf/opt/octave-4.2.1/lib/fuzzy-logic-toolkit-0.4.5
              image *|   2.6.1 | /media/tasos/Gandalf/opt/octave-4.2.1/lib/image-2.6.1
                 io *|   2.4.7 | /media/tasos/Gandalf/opt/octave-4.2.1/lib/io-2.4.7
         statistics *|   1.3.0 | /media/tasos/Gandalf/opt/octave-4.2.1/lib/statistics-1.3.0

以上方法都被视为本地安装。 Octave会在名为octave_packages的文件中保留已安装软件包的列表,通常可以在八度安装或主文件夹中找到。 如果您已从存储库全局安装软件包,则必须通过链接到相应的octave_packages文件(通常为/usr/share/octave/octave_packages)来使用八位字符,使用{ {1}}命令。

例如,我必须从存储库安装pkg global_list,因为上面的直接选项给了我一个错误。要让它出现在八度音阶的可用包列表中,您必须指定是否存在此类全局安装的pkgs:

odepkg

但是,一般情况下,安装此类软件包本地可能更有用,因为存储库中的软件包版本通常已过时(并且必须每个octave:4> pkg global_list /usr/share/octave/octave_packages octave:5> pkg list Package Name | Version | Installation directory ---------------------+---------+----------------------- fuzzy-logic-toolkit | 0.4.5 | /media/tasos/Gandalf/opt/octave-4.2.1/lib/fuzzy-logic-toolkit-0.4.5 image *| 2.6.1 | /media/tasos/Gandalf/opt/octave-4.2.1/lib/image-2.6.1 io *| 2.4.7 | /media/tasos/Gandalf/opt/octave-4.2.1/lib/io-2.4.7 odepkg | 0.8.5 | /usr/share/octave/packages/odepkg-0.8.5 statistics *| 1.3.0 | /media/tasos/Gandalf/opt/octave-4.2.1/lib/statistics-1.3.0 时间很麻烦); 如果octave中的本地安装因任何原因无法工作(例如,给出编译错误),我只会从linux终端安装全局包。

通过在八度音阶终端中执行pkg global_list,查看pkg命令的文档以获取更多详细信息。

答案 1 :(得分:4)

pkg命令实际上是八度音程的一部分,应该在八度音程内运行,而不是从shell终端运行。

这个答案归功于这个thread中的成员,但由于他们同样在扩展评论中得出结论并且最终没有发布答案,也许这会发现其他一些人会陷入困境这个陷阱:)