我正在尝试使用一个利用Matlab的eigs()函数的工具箱。当我在Octave(3.6.4,在Mac OS X上通过Homebrew安装)运行时,返回以下内容:
error: eigs: not available in this version of Octave
我找到了很多可能的解决方案,关于让ARPACK(-ng)程序与Octave一起工作。我已经尝试了更多的方法然后我记得,但似乎都没有。
是否有人使用eigs()函数知道Octave的当前状态?这是可能的,最好是使用Homebrew中的软件包吗?
感谢。
答案 0 :(得分:1)
我认为你指的是从3.6开始,Octave不再带有eigs,并且依赖于外部的arpack库。来自the Octave release notes:
Summary of important user-visible changes for version 3.6: --------------------------------------------------------- ... ** The ARPACK library is no longer distributed with Octave. If you need the eigs or svds functions you must provide an external ARPACK through a package manager or by compiling it yourself. If a pre-compiled package does not exist for your system, you can find the current ARPACK sources at http://forge.scilab.org/index.php/p/arpack-ng
因此,在安装Octave之前,您需要安装一个arpack库,这是Octave可见的地方。对于自制软件,这意味着在/ usr / local /.
下 Octave的configure
文件具有arpack检测逻辑,看起来默认情况下它会在构建过程中检测到arpack,并且如果存在则构建它。因此,如果安装了Homebrew的八度音程,即使没有特殊支持,Homebrew的八度音也应该接受它。
当前的homebrew-science版本中没有arpack公式,但是有一个打开拉取请求添加一个:https://github.com/Homebrew/homebrew-science/pull/112。去那边评论以显示支持,也许很快就会合并。一旦进入,请brew install libarpack; brew install octave
,您的Octave可能会接听eigs
。如果没有,那么就提出一个针对自制科学的问题来添加arpack支持。